This question already has answers here:
Why does the order in which libraries are linked sometimes cause errors in GCC?

(9个答案)


6年前关闭。




我正在尝试使用libpq编译C++应用程序。
在我的Debian上,可以使用以下命令进行编译:
g++ -I /usr/include/postgresql/ -L /usr/lib/postgresql/9.3/lib/ -lpq -o test test.cpp

在我的Ubuntu上,出现以下错误:
undefined reference to 'PQfinish'

我提供了指向postgresql header 和库的链接,并使用了-lpq。我想念什么?

最佳答案

-lpq移动到命令行末尾。

链接按指定的顺序完成,并且仅在需要解析对象符号时才从库中获取对象。因此,每个库都必须追随需要它的任何其他对象。

关于c++ - 即使包含库等,也未定义对PQfinish的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27144588/

10-11 00:39