CMake find_package:它在哪里找到包?

时间:2018-11-21 10:42:00

标签: cmake cmake-modules

在我的CMake程序包中,有一个对find_package的调用。这成功了,太好了!但是,事实证明这是该软件包的错误版本。我现在要删除该程序包。但是,我不知道它在我的系统上的什么位置,也不知道CMake必须在哪里找到-config.cmake文件。有没有办法让find_package给我这些信息?或至少详细地告诉我它在哪里搜索?

我虽然可能在变量CMAKE_MODULE_PATH中,但是对我来说这是空的。所以我猜它在默认路径的某个地方。但是CMake会在很多地方搜索软件包,但在我记得的通常位置都找不到它。

2 个答案:

答案 0 :(得分:3)

从CMake 3.17开始,cmake command line对打印CMake find_*命令的所有所有的搜索目录具有本机支持。使用--debug-find标志:

cmake --debug-find ..

答案 1 :(得分:2)

好的,我在这里找到了解决方法:

https://riptutorial.com/cmake/example/21128/debug-find-package---errors

结果是有一个特殊的调试标志,可让find_package告诉您它在哪里搜索:​​

cmake -D CMAKE_FIND_DEBUG_MODE=ON ..