即使包含库等,也未定义对 PQfinish 的引用

use*_*829 2 c++ postgresql g++ libpq

我正在尝试使用 libpq 编译 C++ 应用程序。在我的 Debian 上,使用以下命令可以正常编译:

g++ -I /usr/include/postgresql/ -L /usr/lib/postgresql/9.3/lib/ -lpq -o test test.cpp
Run Code Online (Sandbox Code Playgroud)

在我的 Ubuntu 上,我收到以下错误:

undefined reference to 'PQfinish'
Run Code Online (Sandbox Code Playgroud)

我已经包含了 postgresql 标头和库的链接并使用了 -lpq。我缺少什么?

Mik*_*our 7

移至-lpq命令行末尾。

链接是按照指定的顺序完成的,并且只有在需要解析符号时才从库中获取对象。因此,每个库都必须位于需要它的任何其他对象之后。