【发布时间】:2015-11-02 15:53:56
【问题描述】:
在过去使用 libpq-fe.h 之后,对于一个新项目,我开始使用 pqxx。
所以,我在代码中包含:
#include <pqxx/pqxx>
然后我编译。一切都很好。
当我声明时:
pqxx::connection p_con;
我编译,我有错误:
obj/Debug/src/dbfunc.o: In function `pqxx::connect_direct::connect_direct(std::string const&)':
/usr/include/pqxx/connection.hxx:87: undefined reference to `pqxx::connectionpolicy::connectionpolicy(std::string const&)'
/usr/include/pqxx/connection.hxx:87: undefined reference to `vtable for pqxx::connect_direct'
obj/Debug/src/dbfunc.o: In function `pqxx::connect_direct::~connect_direct()':
/usr/include/pqxx/connection.hxx:84: undefined reference to `vtable for pqxx::connect_direct'
/usr/include/pqxx/connection.hxx:84: undefined reference to `pqxx::connectionpolicy::~connectionpolicy()'
obj/Debug/src/dbfunc.o: In function `pqxx::basic_connection<pqxx::connect_direct>::basic_connection()':
/usr/include/pqxx/basic_connection.hxx:61: undefined reference to `pqxx::connection_base::connection_base(pqxx::connectionpolicy&)'
/usr/include/pqxx/basic_connection.hxx:62: undefined reference to `pqxx::connection_base::init()'
obj/Debug/src/dbfunc.o: In function `pqxx::basic_connection<pqxx::connect_direct>::~basic_connection()':
/usr/include/pqxx/basic_connection.hxx:78: undefined reference to `pqxx::connection_base::close()'
在 google 上搜索表明这不是图书馆问题。
事实上:一个非常相似的问题,同样的错误,已经在这里解决了:Problem compiling program with pqxx
我不知道如何在 code::blocks 中解决它。有什么建议吗?
软件版本:
- 代码::Blocks 13.12
- 操作系统:Debian 8.2
- Libpqxx:libpqxx-4.0
- 使用的编译器:gcc
- gcc --version: gcc (Debian 4.9.2-10) 4.9.2
我对使用 code::blocks 比较陌生,所以我可能遗漏了一些东西:-/
编辑:根据要求 2 路径:
- /usr/lib/x86_64-linux-gnu/libpq.so
- /usr/lib/x86_64-linux-gnu/libpq.a
【问题讨论】:
-
你是用
-lpq编译的吧? -
不,我没有。我在项目-> 构建选项-> 编译器设置-> 其他选项中添加了它但没有任何变化。嗯,命令变了:“g++ -std=c++11 -Wall -fexceptions -g -lpq -Iinclude -c /myfile.cpp -o /myfile.o”
-
如果在您的系统上搜索名为
libpq.so或libpq.a的文件不成功,请先尝试 Mike Kinghan 的建议并发布其路径 -
好的,我都有。插入的路径有问题。
-
现在在链接器设置中添加
-L/usr/lib/x86_64-linux-gnu/ -lpq
标签: c++ gcc codeblocks