我有两个项目,一个是使用libpq头文件和可执行文件的库,它链接到我的库和libpq,但不管我如何放入makefile,它只是不链接libpq和aways返回给我一个未定义的引用错误。它链接我的lib好吧。未定义的libpq函数参考
g++ -o MYAPP main.o -L../Libs -lpq -lMYLIB
libpq.a和libmylib.a都在Libs目录中。
我用nm来检查函数,他们在那里,我改变了-lpq到-lpq_并且编译器抱怨缺少的lib,所以它找到并且理论上是链接,但是找不到引用?
这真的让我感到困扰,它会是什么?
(我的英文不是很好,抱歉)
感谢,
乔纳森
我添加了extern“C”{#include“libpq-fe.h”}并且没有工作 – Jonathan 2010-11-21 00:41:47
AFAIK,链接顺序与动态库无关,但如果你还没有尝试过,你可以反向'-lpq'和'-lMYLIB'。 – dennycrane 2010-11-21 00:52:39
我这样做了,然后它给了我更多未经验证的错误,但对于libpq中的其他东西,比如kerberus,这让我感到困惑。但现在它正在工作......我所做的就是删除我创建的用于链接目的的Libs目录,然后通过apt-get安装libpq,并让g ++链接到这个新的lib,然后它不会再给我错误。我猜它也与其他图书馆有联系?这对我来说是有点新闻。如果有人解释...... – Jonathan 2010-11-21 01:01:05