gcc-没有意义的链接器错误

gcc-没有意义的链接器错误,gcc,ld,undefined-reference,Gcc,Ld,Undefined Reference,使用Pi GPIO库提供的,我使用以下命令创建libpigpio.so shard对象: # from line 119 in make file make libpigpio.so 共享对象创建得很好。Makefile首先创建pigpio.o对象,然后创建command.o对象,并将它们作为共享对象链接在一起。到目前为止还不错 我编写了一个非常小的主函数,它调用gpioInitialise和gpioGetPWMfrequency 哪些函数并不重要,重要的是它们在pigpio.h中定义,并在

使用Pi GPIO库提供的,我使用以下命令创建libpigpio.so shard对象:

# from line 119 in make file
make libpigpio.so 
共享对象创建得很好。Makefile首先创建
pigpio.o
对象,然后创建
command.o
对象,并将它们作为共享对象链接在一起。到目前为止还不错

我编写了一个非常小的主函数,它调用
gpioInitialise
gpioGetPWMfrequency

哪些函数并不重要,重要的是它们在
pigpio.h
中定义,并在
pigpio.c
中编写

这意味着共享对象应该拥有它们

我的代码的编译命令是:

 gcc -Wall -pthread -fpic -L. -lpigpio -o drive drive.c 
我仍然得到了这两个函数的未定义引用错误

这毫无意义!如果没有找到共享对象,它将拒绝该命令。我也试过了
-l:libpigpio.so
,但还是一样的问题

我直接在RPIA+上编译(不使用交叉编译器)。所以它应该是有效的


我在这里遗漏了什么?

这是一个链接顺序问题。请尝试流动命令

gcc drive.c-Wall-pthread-fpic-o drive-L-lpigpio


您可以阅读了解更多详细信息。

这是一个链接顺序问题。请尝试流动命令

gcc drive.c-Wall-pthread-fpic-o drive-L-lpigpio


您可以阅读更多详细信息。

太好了!谢谢杰出的谢谢