您的位置:首页 > 运维架构

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

2014-02-13 10:39 411 查看
在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避免编译节省时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: