1

我正在尝试编译这个程序

#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

谢谢你的帮助!

4

1 回答 1

3

你在使用这个库吗?

通常,当想要使用某个库时,您需要链接到该库。在这种情况下:

gcc genietest.c -lgeniePi

默认的 makefile 似乎在 /usr/local/lib 下安装 libgeniePi.so ,如果该路径不在编译器的默认搜索路径中,则需要告诉它在哪里查找:

gcc genietest.c -L/usr/local/lib -lgeniePi
于 2013-10-30T18:15:40.923 回答