【发布时间】:2013-06-30 23:10:55
【问题描述】:
我正在使用 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 的一部分。
我对这个平台很陌生,所以我避免使用终端来编译代码。任何帮助将不胜感激。
【问题讨论】:
-
FWIW 我一直看到报告表明 libpqxx 没有得到特别维护。我个人会使用常规的
libpq和libpqtypes。 -
@CraigRinger 感谢您的提示。我是这个平台的新手,我知道 pqxx 是默认使用的东西。此外,我认为 libpq 更倾向于旧的 C 风格代码。我不是这里的大师,但我只是分享我的想法。最后,我正在考虑使用 Code::Clocks 作为 IDE 构建 wxwidgets 应用程序。所以我在想,当涉及到表单上的网格之类的东西时,使用 libpq 是否会很方便。请指教。谢谢!
-
libpq确实是一个纯 C 库。这意味着资源管理和错误处理需要做更多的工作,因为没有异常,没有 RAII,也没有自动 dtor。 OTOH,你可以使用libpqtypes,它可以让很多事情变得更容易。不确定它是否适用于libpqxx。
标签: c++ postgresql database-connection codeblocks libpqxx