【发布时间】:2015-09-12 22:38:40
【问题描述】:
我正在使用第 3 方库 rbdl,其中包含 rbdl.pc.cmake,“我想”包含在 cmake 文件中使用 pkg_check_modules。
我将PKG_CONFIG_PATH 更新为指向 rbdl 文件夹
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_BINARY_DIR}/externals/rbdl")
pkg_check_modules(RBDL rbdl)
但是pkg_check_modules 说它找不到模块。
当我手动复制 rbdl.pc.cmake 时,将副本重命名为 rbdl.pc 并在终端中运行pkg-config --cflags --libs rbdl,然后我的 cmake 也开始工作了!
有趣的是,现在即使我删除了 rbdl.pc,如果 rbdl.pc.cmake 完美找到了 rbdl 模块!
所以我的问题是:
- *.pc 和 *.pc.cmake 有什么区别?
- 如何正确设置我的 cmake 以使用原始 rbdl.pc.cmake?
- 为什么 rbdl.pc.cmake 开始被
pkg_check_modules接受,在进行复制、重命名副本和手动运行 pkg-config 的调整之后?
【问题讨论】:
-
您使用什么版本的 CMake? CMake 3.1 中的 pgk-config 有一些改进。
-
@usr1234567 我使用的是 2.8。会不会是这个原因?
-
如果可能,请使用 CMake 3.1 或更高版本,因为这些版本改进了 pkg-config 功能。
标签: cmake pkg-config