我对CMake命令find_package
有疑问。
例如,当我想使用OpenCV时,我可以设置变量OpenCV_DIR
。 OpenCV_DIR
也有默认值。但是哪个命令生成此变量OpenCV_DIR
,何时生成?
答案 0 :(得分:3)
在幕后,find_package命令正在运行CMake文件。当CMake文件被CMake文件调用时,将运行此文件。这些文件(例如,FindOpenCV.cmake)设置了有问题的变量。
当我遇到find_package命令的问题时,通常会通过阅读相应的FindWhateverPackage.cmake文件来获得一些清晰度。
答案 1 :(得分:0)
find_package以“模块”或“配置”模式运行。默认情况下,它会尝试第一种模式,如果找不到请求的包,它会尝试第二种模式。在此模式下,它会创建缓存变量_DIR。 Link to documentation
如果找到OpenCVConfig.cmake,FindOpenCV也会设置此变量,以获取更多信息see here