سؤال

So I have the following problem:

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

And I cannot figure out why it cannot find the reference because I have libpq installed and its right there in /usr/lib64

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

So if I could get any help with this that would be lovely

هل كانت مفيدة؟

المحلول

PQescapeIdentifier appeared in PostgreSQL 9.0, which corresponds to libpq.so.5.3

9.0 release notes have this entry:

Add libpq functions PQescapeLiteral() and PQescapeIdentifier() (Robert Haas)

You seem to use client libraries from PostgreSQL-8.4 (libpq.so.5.2), that would be why it lacks this function.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top