vc.net连接postgresql编译出错

fjsdsgb 2010-06-09 09:33:40
#include <stdlib.h>
#include <libpq-fe.h>

int main( int argc, char * argv[] )
{
PGconn * connection;

if( argc != 2 )
{
printf( "usage : %s \"connection-string\"\n", argv[0] );
printf( "example: %s \"user=myname password=cows\"\n", argv[0]);
exit( 1 );
}

if(( connection = PQconnectdb( argv[1] )) == NULL )
{
printf( "Fatal error - unable to allocate connection\n" );
exit( 1 );
}

if( PQstatus( connection ) != CONNECTION_OK )
printf( "%s\n", PQerrorMessage( connection ));
else
printf( "Connection ok, disconnecting\n" );

PQfinish( connection );

exit( 0 );

}
编译完后出现
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQerrorMessage@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQstatus@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQconnectdb@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
Debug/Query.exe : fatal error LNK1120: 3 个无法解析的外部命令
补充:有包含静态库,libpq.lib,头文件libpq-fe.h,依赖项为"C:\Program Files\PostgreSQL\8.3\lib\libpq.lib"
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2010-06-09
  • 打赏
  • 举报
回复
认识到环境变量的重要性,就如同数学里头认识到一个数学定义的重要性一样。
没有环境变量,基本上一切应用程序无从谈起。
fjsdsgb 2010-06-09
  • 打赏
  • 举报
回复
你太牛了
太感谢了
iihero_ 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fjsdsgb 的回复:]

vs.net 2003
都重启了,还是一样,麻烦了
[/Quote]
怎么可能,你的libpq.dll所在目录,不是文件全路径
e.g.
libpq.dll位于d:\pgsql\lib
你应该把d:\pgsql\lib追加到path环境变量里(操作系统)(注意, 不是文件的全路径:d:\pgsql\lib\libpq.dll),不是vs.net 2003的options的path里。
这之后再重启vs.net 2003

fjsdsgb 2010-06-09
  • 打赏
  • 举报
回复
vs.net 2003
都重启了,还是一样,麻烦了
iihero_ 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fjsdsgb 的回复:]

引用 3 楼 iihero 的回复:
你把你安装的pgsql或者它的客户端的libpq.dll文件所在的目录添加到环境变量path的顶头,再启动应用程序就可以了。

环境变量添加了,还以一样
[/Quote]
你是用开发环境启的应用吧,把你的VC什么的,重新打开一遍,再运行,才能加载刚改动的环境变量。
fjsdsgb 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iihero 的回复:]
你把你安装的pgsql或者它的客户端的libpq.dll文件所在的目录添加到环境变量path的顶头,再启动应用程序就可以了。
[/Quote]
环境变量添加了,还以一样
iihero_ 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fjsdsgb 的回复:]

现在编译通过,运行时出现没有找到LIBPQ.dll,因为这个应用程序未能启动
请问该怎么办
[/Quote]
你把你安装的pgsql或者它的客户端的libpq.dll文件所在的目录添加到环境变量path的顶头,再启动应用程序就可以了。
ACMAIN_CHM 2010-06-09
  • 打赏
  • 举报
回复
LIBPQ.dll
网上找一下,然后试一下。
fjsdsgb 2010-06-09
  • 打赏
  • 举报
回复
现在编译通过,运行时出现没有找到LIBPQ.dll,因为这个应用程序未能启动
请问该怎么办

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧