C++ 链接 PostgreSql数据库

news/2024/7/9 22:29:55 标签: 数据库, c++, postgresql, pqxx

@[TOC] (C++链接PostgreSql数据库)

pqxx_1">一. 编译pqxx

pqxx_2">1. libpqxx简介

libpqxx是官方发布基于C++语言操作PostgreSQL的API库,简单地讲就是用C++来操作PostgreSQL数据库

2. 编译环境搭建

2.1 PostgreSql下载安装

我安装PostgreSql路径为D:\Program Files\PostgreSQL\14, 安装路径最好没有空格,空格会使后面修改配置文件有点麻烦;要使用Dos格式的路径,在这里我都花了些时间

pqxx_7">2.2 libpqxx下载

直接从github下载libpqxx,我们使用的libpqxx6.4.7,下载命令如下:

git clone --branch 6.4.7 https://github.com/jtv/libpqxx.git

2.3 编译前的准备

修改配置文件

(1)下载下来的libpqxx压缩包,在文件夹win32中common-sample,复制一份命名为common;
(2)使用记事本打开common文件,修改PGSQLSRC的值为PostgreSql安装的根目录(安装路径),比如我的电脑按默认安装是 D:\Program Files\PostgreSQL\14 , 修改为如下内容:
在这里插入图片描述
(3)修改include相关配置

#LIBPQINC=$(PGSQLSRC)\interfaces\libpq
LIBPQINC=$(PGSQLSRC)\include

(4)修改Release相关配置

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

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

(5)修改Debug相关配置

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

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

头文件拷贝

libpqxx\config\sample-headers\compiler\VisualStudio2013\pqxx\目录下的所有头文件拷贝到libpqxx\include\pqxx目录下; 这里不管你安装的是vs 2017还是2019;都能成功

3. 编译

(1)系统中查找nmake.exe,拷贝下这个位置,我机器位置:D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\nmake.exe
(2)开始菜单,选择对应的vs2019命令行并系统管理员身份运行
在这里插入图片描述
(3)cd进入到libpgxx根目录下

f:
cd temp\libpqxx\

在这里插入图片描述
(4)执行编译命令格式

"D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\nmake.exe" /f  win32/vc-libpqxx.mak ALL.

(5)编译成功后会产生一个lib目录,里面保存着静态链接库的debug/release及动态链接库的debug/release文件。
在这里插入图片描述

二. 配置vc项目

Visual Studio的配置

  1. 在VS的工程属性配置对话框中展开“VC++目录”项。在“包含目录”子项添加libpqxx根目录下的include目录,在“库目录”子项添加libpqxx根目录下的lib目录。
    在这里插入图片描述
    在这里插入图片描述
    除了使用上述的绝对路径以外,也可以通过环境变量进行设置,后者的方法较为灵活。方法是新建一环境变量“libpqxx”,变量值为libpqxx的根目录,如下图。然后就可以在上述的设置中用$(libpqxx)来表示这一路径了。
    在这里插入图片描述
  2. 在VS的工程属性配置对话框中配置“链接器->输入->附加依赖项”项,添加静态库,注意需针对Debug版本及Release版本分别添加。Debug版本添加的库为libpqxxD.lib和libpq.lib;Release版本添加的库为libpqxx.lib和libpq.lib。
    在这里插入图片描述
    在这里插入图片描述
  3. 将以下dll文件拷贝至工程的编译输出目录,以供程序调用。
    libpqxx根目录的lib文件夹下的:
    libpq.dll
    libpqxx.dll
    libpqxxD.dll

PostgreSQL安装目录的bin文件夹下的:
libcrypto-1_1.dll
libiconv-2.dll
libintl-8.dll
libssl-1_1.dll

  1. 在VC++工程的源文件中包含libpqxx的头文件
#include <pqxx/pqxx>

http://www.niftyadmin.cn/n/186769.html

相关文章

线程池的优点

线程池的优点&#x1f50e;优点1(降低资源消耗)&#x1f50e;优点2(提高响应速度)&#x1f50e;优点3(可管理性)&#x1f50e;结尾&#x1f50e;优点1(降低资源消耗) 有了线程池后,创建线程不再是向系统申请,而是从线程池中拿 当线程不再使用后,再还给线程池 线程的创建,虽然相…

玩不了chatGPT,请来玩πChat吧!

关于ChatGPT&#xff0c;科技部发声了&#xff01;ChatGPT是什么来的呢&#xff1f;ChatGPT是美国OpenAI公司研发的一款聊天机器人程序&#xff0c;它能够通过理解和学习人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&am…

Solidworks小车模型转urdf文件

Solidworks小车模型转urdf文件 下载sw2urdf插件 sw2urdf插件安装github地址 选择适合自己SolidWorks版本下载 SolidWorks建模 装配零件在joint为旋转的地方建立参考基准轴每个零件建立参考坐标系 sw2urdf 工具->Tools->Export as urdf 首先选择主体部分base_link,然…

JVM笔记(十一)故障排查小工具

在 Java 应用程序的线上环境中&#xff0c;由于各种原因&#xff08;如内存泄漏、死锁等&#xff09;&#xff0c;虚拟机可能会出现故障&#xff0c;导致应用程序崩溃或运行缓慢。以下是一些常用的 Java 线上环境虚拟机故障排查小工具&#xff1a;jps&#xff1a;虚拟机进程状况…

带你玩转Python爬虫(胆小者勿进)千万别做坏事·······

这节课很危险&#xff0c;哈哈哈哈&#xff0c;逗你们玩的 目录 写在前面 1 了解robots.txt 1.1 基础理解 1.2 使用robots.txt 2 Cookie 2.1 两种cookie处理方式 3 常用爬虫方法 3.1 bs4 3.1.1 基础介绍 3.1.2 bs4使用 3.1.2 使用例子 3.2 xpath 3.2.1 xpath基础介…

Win11启用IE方法

呉師傅 Win11是微软目前的最新系统&#xff0c;尽管该系统非常不错&#xff0c;但是还是有很多不一样的地方&#xff0c;有的用户发现Win11没有了IE浏览器&#xff0c;那么Win11没有IE浏览器怎么办呢&#xff0c;有的旧网页需要IE浏览器才能进入&#xff0c;下面就给大家提供一…

8.遍历二叉树、线索二叉树、森林

思考 一.什么遍历二叉树、线索二叉树、森林&#xff1f;&#xff08;What&#xff09; 0.二叉树遍历一共&#xff08;4种&#xff09; 1.二叉树先序遍历 2.二叉树中序遍历 3.二叉树后序遍历 4.遍历分析 5.遍历二叉树 6.二叉树层次遍历 7.二叉树遍历算法的应用 1.建立…

网络编程socket(下)

目录 一、TCP网络程序 1.1 服务端初始化 1.1.1 创建套接字 1.1.2 服务端绑定 1.1.3 服务端监听 1.2 服务端启动 1.2.1 服务端获取连接 1.2.2 服务端处理请求 1.3 客户端初始化 1.4 客户端启动 1.4.1 发起连接 1.4.2 发起请求 1.5 网络测试 1.6 单执行流服务端的…