使用libpqxx访问PostgreSQL数据库(mingw编译libpqxx)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用libpqxx访问PostgreSQL数据库(mingw编译libpqxx)相关的知识,希望对你有一定的参考价值。

编译前准备   

1. 安装mingw

安装mingw(不管是直接安装mingw还是其他如code::blocks附带安装的mingw),输入:gcc -v可显示如下图的版本信息,我的版本是mingw32  4.9.2

2. 安装postgresql

postgresql各个版本下地址:http://www.enterprisedb.com/products-services-training/pgdownload#windows

注意:要下载与mingw编译器对应的版本,如果是mingw32请下载32bit安装包或者编译包;如果是mingw64,请下载64bit安装包或者编译包。

为什么要安装postgresql

       libpqxx是基于libpqC++实现,libpqxxlibpqC-API进行了很好的封装,开发人员使用时可以节省大量的编码时间。如果觉得自己C水平不错,可以直接去使用libpq

 libpq的编译方法:https://www.postgresql.org/docs/9.5/static/install-windows-libpq.html  postgresql的文档真的很全】。

3.libpqxx编译  

libpqxx下载地址:http://pqxx.org/download/software/libpqxx/

  下载的版本是:libpqxx-4.0.1

  解压下载的文件后,进入目录libpqxx-4.0.1\win32,复制common-sample文件,修改文件名为common

 打开common,修改如下(‘#‘为屏蔽符号):

              #PGSQLSRC="C:\Sources\postgresql-9.1.1\src"

              PGSQLSRC="C:\Program Files (x86)\PostgreSQL\9.5"

   

              #LIBPQINC=$(PGSQLSRC)\interfaces\libpq

              LIBPQINC=$(PGSQLSRC)\include

 

              #LIBPQPATH=$(PGSQLSRC)\interfaces\libpq\Release
              #LIBPQDLL=libpq.dll
              #LIBPQLIB=libpqdll.lib

              LIBPQPATH=$(PGSQLSRC)\lib
              LIBPQDLL=libpq.dll
              LIBPQLIB=libpq.lib

 

              #LIBPQDPATH=$(PGSQLSRC)\interfaces\libpq\Debug
              #LIBPQDDLL=libpqd.dll
              #LIBPQDLIB=libpqddll.lib

              LIBPQDPATH=$(PGSQLSRC)\lib
              LIBPQDDLL=libpq.dll
              LIBPQDLIB=libpq.lib

修改完成后保存。

 

libpqxx-4.0.1\config\sample-headers\compiler\MinGW-3.4\pqxx\目录下的所有头文件拷贝到include\pqxx目录下

libpqxx-4.0.1\config\sample-headers\libpq\9.0\pqxx\目录下的所有头文件拷贝到include\pqxx目录下。

切换到libpqxx-4.0.1\目录下,运行命令:mingw32-make -f  win32\MinGW.mak ALL

如果按照如上操作,应该会完成 libpqxx编译。

安装postgresql时一定要安装与编译器对应的版本,否则编译时会报DLL引用错误









以上是关于使用libpqxx访问PostgreSQL数据库(mingw编译libpqxx)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用libpqxx中的pqxx :: stateless_cursor类?

使用vs2015编译器编译libpqxx时发生的错误以及解决办法

将 libpqxx 库添加到 cmake

PostgreSQL C++ Api 出现错误 LNK1107:文件无效或损坏:无法在 0x2E8 读取

PostgreSQL使用clickhousedb_fdw访问ClickHouse

无法使用 PostgreSQL 数据库访问管理页面