2

我对 CMake 命令有疑问find_package

例如,当我想使用 OpenCV 时,我可以设置变量OpenCV_DIR. OpenCV_DIR也有一个默认值。但是哪个命令生成这个变量OpenCV_DIR,什么时候生成?

4

2 回答 2

4

在幕后,find_package 命令正在运行一个 CMake 文件。当您的 CMake 文件调用它们时,该文件在您的 CMake 文件运行时执行。这些文件(例如 FindOpenCV.cmake)设置有问题的变量。

当我遇到 find_package 命令的问题时,我通常会通过阅读相应的 FindWhateverPackage.cmake 文件来获得一些清晰的信息。

于 2012-10-25T18:28:08.267 回答
0

find_package 在“模块”或“配置”模式下运行。默认情况下,它会尝试第一种模式,如果找不到请求的包,它会尝试第二种模式。在这种模式下,它会创建缓存变量 _DIR。链接到文档

FindOpenCV 也会设置这个变量,如果它找到 OpenCVConfig.cmake,更多信息请看这里

于 2012-08-12T14:02:52.437 回答