Cmake学习详细笔记(4) ——语句解析

1find_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/cmakex.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用于查找包含的库文件,其查找顺序为:

  1. 从CMAKE_LIBRARY_PATH中查找。
  2. 从系统默认库目录即/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用于查找包含的头文件,其查找顺序为:

  1. 从CMAKE_INCLUDE_PATH中查找。

  2. 从系统默认头目录即/usr/include、/usr/local/inlucde中查找。

     其中如果从CMAKE_INCLUDE_PATH中查找的话,需要在~/.profile或者/etc/profile中设置(注意:设置后需重启系统),如下:
    
export CMAKE_INCLUDE_PATH=/home/dansir/work/mygit/

其中紫红色是你要设置的查找目录。只有从CMAKE_INCLUDE_PATH找不到的话,才从系统默认目录中查找。

猜你喜欢

转载自blog.csdn.net/qq_15555275/article/details/113144166