在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避免编译节省时间
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避免编译节省时间