我正在使用Code :: Blocks尝试一个非常基本的C ++程序。我在Ubuntu 12.04上并从软件管理器安装了pqxx。这是代码。
#include <pqxx/pqxx>
#include <iostream>
using namespace std;
int main()
{
pqxx::connection MyConn ("dbname=dbESM user=postgres");
cout << "Hello world!" << endl;
return 0;
}
但是在按F9编译并运行时出现以下错误:
/usr/include/pqxx/connection.hxx|87|未定义的引用 `pqxx :: connectionpolicy :: connectionpolicy(std :: basic_string,std :: allocator&gt; const&amp;)&#39;
以上消息来自文件connection.hxx,突出显示的行是:
explicit connect_direct(const PGSTD::string &opts) : connectionpolicy(opts) {}
connection.hxx文件不是我的 - 我认为它是pqxx的一部分。
我对这个平台很陌生,所以我避免终端编译代码。任何帮助将不胜感激。
答案 0 :(得分:4)
您需要将libpqxx
库的引用添加到项目中。
在Code :: blocks中,当项目打开时,在菜单中找到Project
,然后按Build options
,然后打开名为Linker settings
的标签,然后点击Add
},然后输入pqxx
。
如果您使用的是libpq
C库,则该过程将完全相同,但名称将为pq
。
答案 1 :(得分:0)
你需要链接到相应的库,只是#include头文件是不够的。如果可用,您可以使用pkg-config来确定相应的库。此外,您使用的是什么IDE?没有它,“打击F9”参考是没用的。此外,在命令行上编译它可能更容易,因为它更清楚到底发生了什么。