1

我正在使用 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 > const&)' 的引用

上面的消息来自文件 connection.hxx,突出显示的行是:

  explicit connect_direct(const PGSTD::string &opts) : connectionpolicy(opts) {}

connection.hxx 文件不是我的——我认为它是 pqxx 的一部分。

我对这个平台很陌生,所以我避免使用终端来编译代码。任何帮助将不胜感激。

4

2 回答 2

4

您需要将对libpqxx库的引用添加到项目中。

在 Code::blocks 中,当项目打开时,Project在菜单中找到,然后跟随Build options,然后打开名为 的选项卡Linker settings,然后点击Add,然后输入pqxx

如果您使用的是libpqC 库,则该过程将是相同的,只是名称为pq.

于 2013-06-30T15:10:55.820 回答
0

您需要链接到相应的库,仅 #include 头文件是不够的。如果可用,您可以使用 pkg-config 来确定相应的库。此外,您使用的是什么 IDE?没有它,“按 F9”参考是无用的。此外,在命令行上编译它可能更容易,因为它更清楚到底发生了什么。

于 2013-06-30T13:38:22.580 回答