2013-01-31 245 views
3

所以,我有以下問題:Libpqxx抱怨缺少引用

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 

我不能在/ usr/lib64下

弄清楚它爲什麼不能找到參考,因爲我已經libpq的安裝和其右側有
$ ls | grep pq 
libpq.so 
libpq.so.5 
libpq.so.5.2 
libpqxx-4.0.so 
libpqxx.so 

所以,如果我能得到任何幫助,這將是可愛的

回答

5

PQescapeIdentifier出現在PostgreSQL的9.0,這相當於libpq.so.5.3

9.0 release notes有這樣的條目:

添加libpq的功能PQescapeLiteral()和PQescapeIdentifier()(羅伯特 哈斯)

你似乎使用和PostgreSQL-8.4客戶端庫(libpq.so.5.2)這就是爲什麼它沒有這個功能。

相關問題