2013-10-30 4 views
1

Я пытаюсь скомпилировать эту программуКомпиляция 4D Systems geniePi.h

#include <stdio.h> 
#include <unistd.h> 
#include <geniePi.h> 

int counter = 0; 

int main() 
{ 

if (genieSetup ("/dev/ttyAMA0", 115200) < 0) 
{ 
    printf("Failed to connect"); 
} 

for (;;) 
{ 
    counter++; 
    genieWriteObj (GENIE_OBJ_COOL_GAUGE, 0, counter) ; 
    sleep(10); 
} 



return 0; 
} 

Я бежал команду

sudo gcc genietest.c 

Я получаю ошибку

genietest.c:(.text+0x10): undefined reference to `genieSetup' 
genietest.c:(.text+0x54): undefined reference to `genieWriteObj' 

швы мне, что geniePi.h не входит в комплект

я установил в каталоге Pi с использованием

make 
sudo make install 

Спасибо за вашу помощь!

+0

Вам необходимо добавить библиотеку джина в свою линию компиляции. Что-то вроде «sudo gcc genietest.c -lgenie» в зависимости от того, где находится библиотека джинов. –

ответ

3

Вы используете this library?

Обычно, когда вы хотите использовать библиотеку, вам необходимо установить ссылку на эту библиотеку. В этом случае:

gcc genietest.c -lgeniePi 

по умолчанию Файл Makefile, кажется, установить libgeniePi.so в/USR/местные/Lib, если этот путь не в пути поиска по умолчанию для вашего компилятора, вы должны сказать ему, где искать :

gcc genietest.c -L/usr/local/lib -lgeniePi 
+0

Это было его компиляция, но он ничего не делал, когда я запускал его. Есть идеи? – TheGreenToaster

+0

Я понятия не имею, что даже должно произойти. Файл README.md в библиотеке содержит целую кучу вещей, которые вам нужно сделать в первую очередь, вы хотя бы сделали это? Но он обязательно должен что-то сделать, либо напечатать «Не удалось подключиться», либо запустить вечно (пока вы его не убьете) – nos

+0

Я добавил «Else» после того, как если что-то напечатает что-то, если оно получится, но выхода еще нет. Я установил все части, указанные в README. – TheGreenToaster