我正试图编译一个使用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
运行,其中确实包括针对/home/user/test/lib/pkgconfig
的access
尝试,但没有针对libtest
记录任何内容。
我使用的是Ubuntu 16.04和CMake 3.5.1
Macropkg_check_modules
是pkg配置实用程序的包装器,它搜索并读取.pc
文件
No package 'libtest' found
意味着您没有与包对应的.pc
,或者CMake找不到该文件。