You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:03:10