我正在尝试编译一个使用CMake
和pkg_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
答案 0 :(得分:1)
宏pkg_check_modules
是pkg-config实用程序的包装,该实用程序搜索.pc
文件并读取它。错误
No package 'libtest' found
意味着您没有.pc
与该软件包相对应,否则CMake无法找到该文件。