1,find_package(OpenCV REQUIRED)
1)、 find_package()命令首先会在模块路径中寻找 Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:
变量 C M A K E M O D U L E P A T H 中 的 所 有 目 录 。 如 果 没 有 , 然 后 再 查 看 它 自 己 的 模 块 目 录 / s h a r e / c m a k e − x . y / M o d u l e s / ( {CMAKE_MODULE_PATH}中的所有目录。如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ ( CMAKEMODULEPATH中的所有目录。如果没有,然后再查看它自己的模块目录/share/cmake−x.y/Modules/(CMAKE_ROOT的具体值可以通过CMake中message命令输出)。这称为模块模式。
2)、 如果没找到这样的文件,find_package()会在~/.cmake/packages/或/usr/local/share/中的各个包目录中查找,寻找<库名字的大写>Config.cmake 或者 <库名字的小写>-config.cmake (比如库Opencv,它会查找/usr/local/share/OpenCV中的OpenCVConfig.cmake或opencv-config.cmake)。**这称为配置模式。
find_library用于查找包含的库文件,其查找顺序为:
- 从CMAKE_LIBRARY_PATH中查找。
- 从系统默认库目录即/usr/lib、/usr/local/lib中查找。
其中如果从CMAKE_LIBRARY_PATH中查找的话,需要在~/.profile或者/etc/profile中设置(注意:设置后需重启系统),如下:
export CMAKE_LIBRARY_PATH=/home/dansir/work/mygit
其中紫红色是你要设置的查找库目录。只有从CMAKE_LIBRARY_PATH找不到的话,才从系统默认库目录中查找。
2,find_path
find_path用于查找包含的头文件,其查找顺序为:
-
从CMAKE_INCLUDE_PATH中查找。
-
从系统默认头目录即/usr/include、/usr/local/inlucde中查找。
其中如果从CMAKE_INCLUDE_PATH中查找的话,需要在~/.profile或者/etc/profile中设置(注意:设置后需重启系统),如下:
export CMAKE_INCLUDE_PATH=/home/dansir/work/mygit/
其中紫红色是你要设置的查找目录。只有从CMAKE_INCLUDE_PATH找不到的话,才从系统默认目录中查找。