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
和经由CONFIG的find_package
模式搜索包。可能这些变体不需要额外的提示。
通过pkg-config
搜索可以pkg_check_modules在CONFIG模式可以在本选项添加到通话find_package(XercesC)
,或者干脆删除FindXercesC.cmake
脚本来执行,使用find_package
。
以上是 CMake FindXercesC.cmake没有找到我的XercesC 的全部内容, 来源链接: utcz.com/qa/260667.html