libpqxx 概述
libpqxx 是 PostgreSQL 的 C++ 客户端库,底层基于 libpq。它提供的是一套偏现代的 C++ 接口,适合直接在项目里做数据库访问。对 C++ 开发来说,这比自己手写一层 C 接口要省事得多,尤其是事务、结果集和异常处理这些常见场景。
技术栈与兼容性
libpqxx 依赖 PostgreSQL 的原生客户端库,同时要求较新的 C++ 标准支持。实际使用时,先确认你的编译器和项目标准别太旧,否则后面会在编译阶段卡住。
支持的平台比较常见:GNU/Linux、macOS、Windows(通常通过 WSL、Cygwin 或 MinGW),以及其他类 UNIX 系统。
安装前的依赖准备
先把编译环境和 PostgreSQL 开发库装好。这个步骤不复杂,但缺一项就会影响后面的配置。
编译环境
- g++ 7.0 或更高版本
- clang++ 6.0 或更高版本
- CMake 3.12 或更高版本,或者标准的类 Unix 构建工具
PostgreSQL 开发库
# Debian/Ubuntu 系统
sudo apt-get install libpq-dev
# RedHat/CentOS 系统
sudo yum install postgresql-devel
# macOS 系统
brew install postgresql
获取源码
git clone https://github.com/jtv/libpqxx
cd libpqxx
libpqxx 主要有两种构建方式:CMake 和传统 configure。前者更适合跨平台,后者在类 Unix 环境里也很顺手。
构建与安装
方式一:CMake
先建一个单独的构建目录,别直接在源码目录里跑构建,后面清理起来省心。
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
方式二:configure
如果你更习惯传统流程,可以直接走 configure。这个方式在类 Unix 系统上很直接,步骤也少。
./configure --disable-shared
make -j$(nproc)
sudo make install
不同平台的处理
Windows
Windows 上我更倾向于先用 WSL,少踩工具链和路径编码的坑。要是必须原生编译,再考虑 MinGW。
macOS
macOS 先用 Homebrew 装依赖,再确认 Xcode 命令行工具已经就位。不然编译器和头文件经常对不上。
验证安装
写一个最小程序,能编译、能链接、能跑起来,基本就说明安装没问题了。
#
{
{
pqxx::connection conn;
std::cout << << std::endl;
std::cout << << conn.() << std::endl;
} ( std::exception &e) {
std::cerr << << e.() << std::endl;
;
}
;
}

