我有一个关于CMake命令find_package
的问题。CMake如何使用find_package工作变量<name> _DIR
例如,当我想使用OpenCV时,我可以设置变量OpenCV_DIR
。 OpenCV_DIR
也有一个默认值。但是哪个命令产生这个变量OpenCV_DIR
,什么时候?
我有一个关于CMake命令find_package
的问题。CMake如何使用find_package工作变量<name> _DIR
例如,当我想使用OpenCV时,我可以设置变量OpenCV_DIR
。 OpenCV_DIR
也有一个默认值。但是哪个命令产生这个变量OpenCV_DIR
,什么时候?
的幕后,find_package命令运行CMake的文件。当您的CMake文件被CMake文件调用时,此文件将在您运行CMake文件时执行。这些文件(例如FindOpenCV.cmake)设置有问题的变量。
当我遇到find_package命令的问题时,我通常通过阅读相应的FindWhateverPackage.cmake文件来获得一些清晰度。
find_package以“模块”或“配置”模式运行。默认情况下,它会尝试第一种模式,如果未能找到请求的软件包,则会尝试第二种模式。在这种模式下,它创建缓存变量_DIR。 Link to documentation
FindOpenCV还设置了此变量,如果它发现OpenCVConfig.cmake,以获取更多信息see here