CMake pkg_check_modules不搜索CMAKE_PREFIX_PATH

时间:2018-11-03 20:21:30

标签: ubuntu cmake pkg-config

我正在尝试编译一个使用CMakepkg_check_modules的项目,但无法获得pkg_check_modules来查找位于CMAKE_PREFIX_PATH下的库。

我相信以下示例会重现该问题:

如果我在libtest.so中有/home/user/test/lib,则给定CMakeLists.txt

include(FindPkgConfig)
pkg_check_modules(
  TEST
  REQUIRED
  libtest
)

...并运行:

cmake -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DCMAKE_PREFIX_PATH=/home/user/test .

...导致错误:

No package 'libtest' found

我还尝试了对strace -v -f的运行,其中确实包括对access的一次/home/user/test/lib/pkgconfig尝试,但是对libtest却什么也不记录。

我正在使用Ubuntu 16.04和CMake 3.5.1

1 个答案:

答案 0 :(得分:1)

pkg_check_modulespkg-config实用程序的包装,该实用程序搜索.pc文件并读取它。错误

No package 'libtest' found

意味着您没有.pc与该软件包相对应,否则CMake无法找到该文件。