执行cmake ..时无法找到PugiXml配置文件,安装libpugixml-dev无效求解决
执行cmake ..时出现如下错误:
Could not find a package configuration file provided by "PugiXml" with any
of the following names:PugiXmlConfig.cmake
pugixml-config.cmakeAdd the installation prefix of "PugiXml" to CMAKE_PREFIX_PATH or set
"PugiXml_DIR" to a directory containing one of the above files. If
"PugiXml" provides a separate development package or SDK, be sure it has
been installed.
已通过sudo apt install libpugixml-dev安装开发包但问题未解决,可尝试以下方案:
手动指定配置文件路径
先查找系统中已安装的pugixml配置文件位置:find /usr -name "pugixml-config.cmake" -o -name "PugiXmlConfig.cmake"找到路径后,在执行cmake时指定
PugiXml_DIR:cmake .. -DPugiXml_DIR=/path/to/pugixml/cmake/directory或者将配置文件所在的父目录添加到
CMAKE_PREFIX_PATH:cmake .. -DCMAKE_PREFIX_PATH=/path/to/pugixml/parent/directory从源码编译安装PugiXml
若apt包未提供正确的CMake配置文件,直接源码编译安装:- 克隆源码:
git clone https://github.com/zeux/pugixml.git cd pugixml - 编译安装:
mkdir build && cd build cmake .. -DBUILD_SHARED_LIBS=ON make -j$(nproc) sudo make install
安装完成后,CMake默认会在
/usr/local/lib/cmake/pugixml/找到配置文件。- 克隆源码:
调整项目CMakeLists.txt
检查项目中的find_package调用,若原代码是find_package(PugiXml),尝试改为小写的find_package(pugixml),匹配apt安装的配置文件名。
内容的提问来源于stack exchange,提问作者lasJac

