当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : postgresql的C库怎么用?一直提示undefined reference to...
帖子发表于 : 2010-11-06 17:00 

注册: 2010-05-20 12:10
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
装了libpq-dev后,C程序编译通不过,一直报错,所有的PQ...型函数都提示找不到入口.
下面是报错提示:
/tmp/ccSxUVAT.o: In function `main':
psql_test.c:(.text+0x79): undefined reference to `PQsetdbLogin'
psql_test.c:(.text+0x89): undefined reference to `PQstatus'
psql_test.c:(.text+0xb8): undefined reference to `PQfinish'
psql_test.c:(.text+0xd6): undefined reference to `PQexec'
psql_test.c:(.text+0xe6): undefined reference to `PQresultStatus'
psql_test.c:(.text+0x11f): undefined reference to `PQclear'
psql_test.c:(.text+0x135): undefined reference to `PQntuples'
psql_test.c:(.text+0x145): undefined reference to `PQnfields'
psql_test.c:(.text+0x179): undefined reference to `PQgetvalue'
psql_test.c:(.text+0x1ce): undefined reference to `PQfinish'
psql_test.c:(.text+0x1da): undefined reference to `PQclear'
collect2: ld returned 1 exit status
有没有人知道这大概是什么问题?难道是我少装什么东西了吗?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: postgresql的C库怎么用?一直提示undefined reference to...
帖子发表于 : 2010-11-06 20:49 

注册: 2010-05-20 12:10
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
我装的服务器是9.0的.是不是必须得用相应的开发包?该怎么找?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: postgresql的C库怎么用?一直提示undefined reference to...
帖子发表于 : 2010-11-06 22:20 

注册: 2010-05-20 12:10
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
自己搞定了,官网上的安装包是带有C库的.psql默认安装在/opt/PostgreSQL/9.0下,里面有include和lib这两个目录,写C程序的时候包含include下的libpq-fe.h.在编译连接的时候,连接lib目录下的libpq.so.按理说应该是把这个目录加到LD_LIBRARY_PATH中就可以了,但是不知道怎么回事不行,还是对gcc编译器的工作原理不了解.最后只好在编译的时候加参数来解决这个问题了.命令是这样的:
$ gcc -Ldir /opt/PostgreSQL/9.0/lib/libpq.so psql_test.c
如果有朋友知道怎么自动查找动态库,麻烦说一声.谢谢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译