我有一個關於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