CMake FindXercesC.cmake没有找到我的XercesC

在我的系统(Fedora 26)上,我使用yum(又名dnf)安装了XercesC。所述XercesC头文件位于
CMake FindXercesC.cmake没有找到我的XercesC

/usr/include/xercesc-2.7.0/xercesc

和库是

的/ usr/lib64下/ libxerces -c.so.27。

我已经试过官方FindXercesC.cmake以及一些这个包取景器的发布版本。我也尝试了许多编辑*.cmake文件。他们都不能找到XercesC,我不得不求助于手动输入标题和库的位置。

是否有一个XercesC的CMake包发现器,可以在我的系统上自动定位XercesC?

回答:

通常情况下,CMake搜索的东西只在默认目录中。例如,/usr/include目录会自动搜索头文件。

但是目录/usr/include/xercesc-2.7.0不是CMake的默认值(它也不是编译器的默认值),所以CMake在没有明确提示的情况下找不到东西。为了提示CMake关于include目录的搜索,设置CMAKE_INCLUDE_PATH变量。例如,通过命令行:

cmake -DCMAKE_INCLUDE_PATH=/usr/include/xercesc-2.7.0 <other_params> 

类似的是用于搜索库文件真:CMake的自动搜索/usr/lib64/下库,但不低于/usr/lib64/xercesc-2.7.0。另外,CMake只能找到没有的版本,因此版本号为,所以它找不到文件/usr/lib64/libxerces-c.so.27。找到一个文件/usr/lib64/xercesc-2.7.0/libxerces-c.so你需要提示CMake CMAKE_LIBRARY_PATH变量。


根据该xercesc sources,它支持通过pkg-config和经由CONFIGfind_package模式搜索包。可能这些变体不需要额外的提示。

通过pkg-config搜索可以pkg_check_modules在CONFIG模式可以在本选项添加到通话find_package(XercesC),或者干脆删除FindXercesC.cmake脚本来执行,使用find_package

以上是 CMake FindXercesC.cmake没有找到我的XercesC 的全部内容, 来源链接: utcz.com/qa/260667.html

回到顶部