Windows7使用Visual Studio 2010编译libpqxx 'copy' : return code '0x1'

在windows 7下使用visual studio 2010编译libpqxx4.0.1的过程

1.准备工作
PostgreSQL 下载地址http://www.enterprisedb.com/products-services-training/pgdownload#windows
libpqxx        下载地址http://pqxx.org/development/libpqxx/wiki/DownloadPage

由于libpqxx对libpq的C-API进行了很好的封装,从而可以节省大量的编码时间。
有关帮助文档,可以直接参考: libpqxx的手册http://pqxx.org/devprojects/libpqxx/doc/4.0/html/Tutorial
libpqxx的类库帮助:http://pqxx.org/devprojects/libpqxx/doc/4.0/html/Reference/

注意:
安装PostgreSQL的时候有路径问题,在windows 7安装x86版默认路径C:\Program Files (x86)\PostgreSQL...出现问题不能正确编译

本人实际安装路径
C:\PostgreSQL\9.2
数据路径
F:\PostgreSQL\data

安装正常,但是加载数据库的出现问题,addModule...失败
修改F:\PostgreSQL\data\pg_hba.conf内容如下

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all        all        192.168.1.6/32        md5   ----新增加根据实际情况添加


2.编译过程
将libpqxx源码目录解压到D:\Source\libpqxx
将common-sample复制后修改名称为common后修改为如下设置,这是我的实际配置

PGSQLSRC=C:\PostgreSQL\9.2  //PostgreSQL安装目录 哦,这里源文件里面有""号,能路径问题是用""能解决未经过测试。

PGSQLINC=$(PGSQLSRC)\include //PostgreSQL头文件所在目录

LIBPQINC=$(PGSQLSRC)\include\libpq //libpq头文件所在目录

LIBPQPATH=$(PGSQLSRC)\lib
 //libpq lib文件所在目录
LIBPQDLL=libpq.dll

LIBPQLIB=libpq.lib

LIBPQDPATH=$(PGSQLSRC)\lib
 //libpq lib文件所在目录
LIBPQDDLL=libpq.dll

LIBPQDLIB=libpq.lib


D:\Source\libpqxx\config\sample-headers\compiler\VisualStudio2010\pqxx
D:\Source\libpqxx\config\sample-headers\libpq\9.0\pqxx
里的.h文件拷贝到D:\Source\libpqxx\include\pqxx下


进入到vs2010命令行模式
切换到
D:\Source\libpqxx后执行nmake /f win32/vc-libpqxx.mak ALL 稍等就会编译成功


编译为64位模式:
摘自:http://code.google.com/p/icode-mda/wiki/BuildingLibpqxx
64-bit only

Edit the following file win32\vc-libpqxx.mak

Replace:

LINK_FLAGS_BASE=kernel32.lib ws2_32.lib advapi32.lib /nologo /dll /machine:I386 shell32.lib secur32.lib wldap32.lib

With:

LINK_FLAGS_BASE=kernel32.lib ws2_32.lib advapi32.lib /nologo /dll /machine:x64 shell32.lib secur32.lib wldap32.lib

The only change was the machine argument /machine:x64

不成功的经验:
1.PGSQLINC和LIBPQINC设置不正确会编译错误,提示缺少头文件.
LIBPQINC -- libpq-fs 找不到
1.PGSQLINC -- libpq-fe 找不到

2.LIBPQPATH设置不正确
编译成功,但是不能正确的生成dll文件导致出现如下错误
NMAKE : fatal error U1077: 'copy' : return code '0x1'

3.使用PostgreSQL的源码
没有编译直接使用造成缺少lib文件从而出现第2个错误。
推荐安装PostgreSQL避免编译节省时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值