我正试图编译这个程序

#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不包括在内
我使用
 make
 sudo make install

谢谢你的帮助!

最佳答案

您正在使用this库吗?
一般来说,当你想使用一个库时,你需要链接到那个库。在这种情况下:

gcc genietest.c -lgeniePi

默认makefile似乎在/usr/local/lib下安装了libgeniePi.so,如果该路径不在编译器的默认搜索路径中,则需要告诉它查找位置:
gcc genietest.c -L/usr/local/lib -lgeniePi

关于c - 编译geniePi.h 4D系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19690671/

10-09 08:44