提问人:Sam Hammamy 提问时间:3/31/2018 更新时间:4/2/2018 访问量:1007
gcc - 没有意义的链接器错误
gcc - linker error that makes no sense
问:
使用 Pi GPIO 库提供的 Makefile,我使用以下命令制作了 libpigpio.so 分片对象:
# from line 119 in make file
make libpigpio.so
共享对象创建正常。Makefile 首先创建对象,然后创建对象,并将它们作为共享对象链接在一起。目前为止,一切都好!pigpio.o
command.o
我编写了一个非常小的 main 函数,它调用 和 。gpioInitialise
gpioGetPWMfrequency
哪些函数并不重要,重要的是它们被定义和编写。pigpio.h
pigpio.c
这意味着共享对象应该具有它们。
我的代码的编译命令是:
gcc -Wall -pthread -fpic -L. -lpigpio -o drive drive.c
尽管如此,我仍然得到了这两个函数的未定义引用错误。
这毫无意义!如果找不到共享对象,它将拒绝该命令。我也试过了,但还是同样的问题。-l:libpigpio.so
我直接在 Rpi A+ 上编译(不使用交叉编译器)。所以它应该起作用!
我在这里错过了什么?
答:
2赞
gzh
4/2/2018
#1
这是一个链接顺序问题。请尝试 flowing 命令。
gcc drive.c -Wall -pthread -fpic -o drive -L. -lpigpio
评论