Libpqxx抱怨缺少引用。

3

我有以下问题:

g++ -std=c++0x -O3 -I/usr/include/scip main.cpp locations/locationreader.cpp locations/locationassigner.cpp scheduler.o optimizer.o dbmanager.o scheduleData.o exam.o  -o main -L/usr/lib -lscip  -lreadline  -lgmp -lz -llpispx  -lsoplex  -lobjscip -lnlpi.cppad -lscipopt -lzimpl -lpqxx -lpq  -pthread
/usr/lib/../lib64/libpqxx.so: undefined reference to `PQescapeIdentifier'
collect2: error: ld returned 1 exit status
make: *** [main] Error 1

我无法理解为什么它找不到参考,因为我已经安装了libpq并且它就在 /usr/lib64 目录下。

$ ls | grep pq
libpq.so
libpq.so.5
libpq.so.5.2
libpqxx-4.0.so
libpqxx.so

如果我能得到任何关于这个的帮助,那将是非常愉快的。

1个回答

6

PQescapeIdentifier 出现在 PostgreSQL 9.0 中,对应于 libpq.so.5.3

9.0 版本的 发行说明 中有以下条目:

添加 libpq 函数 PQescapeLiteral() 和 PQescapeIdentifier() (Robert Haas)

您似乎正在使用来自 PostgreSQL-8.4 (libpq.so.5.2) 的客户端库,这就是为什么它缺少此函数的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接