2011-09-19 74 views
1

库的libpq我在Debian的自http://www.postgresql.org/docs/9.0/interactive/libpq-example.html于具有文件的libpq-fe.h目录安装PostgreSQL 8.4,把程序testlibpq.c,但GCC编译后写信给我问题与Debian的

testlibpq.c:(.text+0x4a): undefined reference to `PQconnectdb' 
testlibpq.c:(.text+0x5a): undefined reference to `PQstatus' 
testlibpq.c:(.text+0x6f): undefined reference to `PQerrorMessage' 
testlibpq.c:(.text+0xa9): undefined reference to `PQexec' 
testlibpq.c:(.text+0xb9): undefined reference to `PQresultStatus' 
testlibpq.c:(.text+0xcf): undefined reference to `PQerrorMessage' 
testlibpq.c:(.text+0xf5): undefined reference to `PQclear' 
testlibpq.c:(.text+0x10d): undefined reference to `PQclear' 
testlibpq.c:(.text+0x121): undefined reference to `PQexec' 

。等等我必须做什么来纠正工作?

回答

6

看起来你并没有链接PostgreSQL库。你应该编译testlibpq.c像这样的东西:

gcc -o testlibpq testlibpq.c -lpq 

-lpq告知链接对PostgreSQL库链接而这也正是PQconnectdb和朋友来的。

您可能需要告诉编译器在哪里可以找到库和头为好,如果是的话那么这样的事情应该是梳理出来:

gcc -o testlibpq -I$(pg_config --includedir) -L$(pg_config --libdir) -o testlibpq $(pg_config --libs)