Visual studio 2017编译libpqxx6.1.0

解析数据保存到数据库,但是sqlite支持多线程不好总有这样,那样的错误。研究了一周没有太好的进展,放弃。
采用PostgreSQL 9.5数据库。在C++中访问采用libpqxx。
当前最新版:6.1.0下载地址 https://github.com/jtv/libpqxx
1.首先安装PostgreSQL
2.下载源码并解压
3.进入到win32目录,找到common-sample,并且将他重命名为common。
4.打开common文件,做如下修改:
PGSQLSRC=C:\PostgreSQL\9.5 #PostgreSQL9.5的安装目录或者包含include和lib的目录
把LIBPQINC=$(PGSQLSRC)\interfaces\libpq注释掉,
取消
   LIBPQINC=$(PGSQLSRC)\include的注释。
把LIBPQPATH=$(PGSQLSRC)\interfaces\libpq\Release
   LIBPQDLL=libpq.dll
   LIBPQLIB=libpqdll.lib 注释掉,
取消
   LIBPQDPATH=$(PGSQLSRC)\lib
   LIBPQDDLL=libpq.dll
   LIBPQDLIB=libpq.lib 注释。
把LIBPQDPATH=$(PGSQLSRC)\interfaces\libpq\Debug
   LIBPQDDLL=libpqd.dll
   LIBPQDLIB=libpqddll.lib 注释掉,
取消
   LIBPQDPATH=$(PGSQLSRC)\lib
   LIBPQDDLL=libpq.dll
   LIBPQDLIB=libpq.lib 注释。
5.将config\sample-headers\compiler\VisualStudio2013\pqxx目录下的所有文件全部拷贝到include\pqxx目录下。
6.管理员方式运行,vs2017的x86——64交叉命令行工具,并切换到源码所在的目录
7.运行命令
 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\nmake.exe" /f  win32/vc-libpqxx.mak ALL
8.编译成功后,在源码目录下增加了ObjDllDebug ObjDllRelease ObjStaticDebug ObjStaticRelease  lib目录,最后一个目录就是我们需要的lib和dll目录。
9.因为这个默认是64bit,因此编译的是64bit程序。可以通过修改vc-libpqxx.mak文件来实现编译x86.
找到machine:X64修改为machine:X86即可。

遇到的问题:
1.找不到libpq-fe.h文件。就是PGSQLSRC的值包含空格,造成不识别这个路径。
一般情况使用双引号包含这个值就可以了,但是本项目不行因为后面copy的时候用到这个路径,
他那里用了双引号,造成拷贝失败。编译也就失败了。
2.fatal error LNK1112错误
出现这个错误后,将源码目录下的ObjDllDebug ObjDllRelease ObjStaticDebug ObjStaticRelease四个目录全部删除后再重新编译。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值