Linux下设置CMAKE_PREFIX_PATH后,CMake的pkg_search_module仍无法找到指定包的问题咨询
Linux下设置CMAKE_PREFIX_PATH后,CMake的pkg_search_module仍无法找到指定包的问题咨询
我遇到了一个CMake查找pkg-config包的问题,想请教一下大家:
我有一个RPM包,它会安装几个共享库和一个.pc文件,这个.pc文件被安装到了/usr/lib/pkgconfig路径下。直接用命令行执行:
pkg-config --libs libNAME --with-path=/usr/lib/pkgconfig
是可以返回预期结果的。
但在CMake里,我尝试了下面这些设置都没起作用:
- 设置
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE),没有任何效果 - 将
CMAKE_PREFIX_PATH指定为/usr/lib/pkgconfig,也就是执行set(CMAKE_PREFIX_PATH "/usr/lib/pkgconfig"),随后用pkg_search_modules(MYLIB REQUIRED IMPORTED_TARGET libNAME)查找包,还是会报“包未找到”的致命错误
我还开启了CMake的查找调试模式:
set(CMAKE_FIND_DEBUG_MODE TRUE)
结果关于这个包的调试输出完全没有,直接还是输出同样的错误,这让我觉得很奇怪,不过我还没深入研究FindPackage的源码看具体问题。
目前我发现只有把环境变量PKG_CONFIG_PATH设为/usr/lib/pkgconfig时,CMake才能正常找到这个包。
我想请教的是:要让CMake通过CMAKE_PREFIX_PATH配合FindPackage找到包,是不是这个路径必须已经在PKG_CONFIG_PATH里?我之前以为只要设置CMAKE_PREFIX_PATH就足够让CMake去对应路径查找.pc文件了,但现在看来好像不是这样?
备注:内容来源于stack exchange,提问作者Andrew S
相关产品推荐
相关产品推荐

