Visual Studio 2022下构建libpqxx库时CMake报错的问题咨询
解决libpqxx编译时CMake相关问题
关于CMakeLists.txt的使用
- 必须使用libpqxx-7.8.1根目录下的
CMakeLists.txt,src子目录的文件仅用于库内部模块编译,根目录文件才是生成完整VS解决方案的入口。
问题1:CMake提示“Could NOT find PostgreSQL (missing: PostgreSQL_INCLUDE_DIR)”
有两种直接解决方式:
cmake命令手动指定路径
执行cmake时通过-DPostgreSQL_ROOT参数指定你的PostgreSQL安装路径,命令示例(替换为实际路径和对应VS架构):cmake . -G "Visual Studio 17 2022" -A x64 -DPostgreSQL_ROOT="C:/Program Files/PostgreSQL/16"注意:
-A x64要和PostgreSQL的安装架构匹配(若装32位则用-A Win32)。设置系统环境变量
在系统环境变量中添加PostgreSQL_ROOT,值为你的PostgreSQL安装目录(如C:/Program Files/PostgreSQL/16),设置完成后重启命令提示符再执行cmake .。
问题2:pkg-config找不到libpq模块
原因是pkg-config无法定位PostgreSQL的libpq.pc配置文件,该文件位于PostgreSQL安装目录的lib/pkgconfig下。解决方式:
临时设置环境变量
在执行cmake的命令窗口中先运行:set PKG_CONFIG_PATH=C:/Program Files/PostgreSQL/16/lib/pkgconfig再执行cmake命令。
cmake命令直接指定路径
在cmake命令中添加-DPKG_CONFIG_PATH参数:cmake . -G "Visual Studio 17 2022" -A x64 -DPKG_CONFIG_PATH="C:/Program Files/PostgreSQL/16/lib/pkgconfig"跳过pkg-config(推荐)
直接使用问题1中指定PostgreSQL_ROOT的方式,cmake会直接查找PostgreSQL的头文件和库,无需依赖pkg-config,避免此类问题。
内容的提问来源于stack exchange,提问作者DRF
相关产品推荐
相关产品推荐

