find_package 命令用法举例 find_package(OpenCV) 查找名为 OpenCV 的包,找不到不报错,事后可以通过 ${OpenCV_FOUND} 查询是否找到。 find_package(OpenCV QUIET) 查找名为 OpenCV 的包,找不到不报错,也不打印任何信息。 find_package(OpenCV REQUIRED) # 最常见用法 查找名为 OpenCV 的包,找不到就报错(...
find_package将先到module路径下查找Find<name>.cmake。首先它搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索/usr/share/cmake-3.5/Modules。比如find_package(Boost)搜索的文件是/usr/share/cmake-3.5/Modules/FindBoost.cmake。 采用list APPEND 不会改变原来的变量,只是在list中新增。 # set(CMAKE_MODULE_...
find_package()原理解读 根据cmake官⽅⽂档可以知道,find_package()有Module模式(基本⽤法,basic signature)和Config模式(full signature,完全⽤法),其中Module模式是基础,Config模式则更复杂⾼级些。区分Module模式和Config模式 Module模式也就是基础⽤法(Basic Signature,这⾥Signature表⽰“⽤法”...
它主要通过<LibraryName>Config.cmakeor<lower-case-package-name>-config.cmake这两个文件来引入我们需要的库。以我们刚刚安装的glog库为例,在我们安装之后,它在/usr/local/lib/cmake/glog/目录下生成了glog-config.cmake文件,而/usr/local/lib/cmake/<LibraryName>/正是find_package函数的搜索路径之一。(find_...
让我们通过一个示例来演示find_package命令的用法。假设我们的项目需要使用OpenCV库。 首先,我们需要在CMakeLists.txt中使用find_package来找到OpenCV: find_package(OpenCV REQUIRED) add_executable(my_project main.cpp) target_link_libraries(my_project {OpenCV_LIBRARIES}) 在这个例子中,我们指定了OpenCV是必需的...
find_package函数通常与CMake的搜索包机制一起使用,用于在指定的包中查找特定的组件或资源。它的一般语法如下: ```scss find_package(PackageName) ``` 其中,PackageName是要查找的包的名称。在调用find_package函数后,CMake会在指定的包中搜索相应的组件或资源。如果找到了所需的组件或资源,则将其添加到当前构建...
默认情况下,find_package命令会首先尝试在MODULE_PATH中查找相应的find.cmake文件。如果指定了该参数,find_package命令将只使用CMake内置的文件搜索机制来查找库或框架。 find_package(MyLib NO_MODULE) 上述代码表示禁用find_package命令的模块模式,只使用CMake内置的文件搜索机制来查找MyLib库。 NO_DEFAULT_PATH:可...
接下来,我们还可以使用一些其他的选项来精确控制find_package的行为。例如,NO_DEFAULT_PATH选项可以禁止在默认路径中搜索包;PATHS选项可以指定其他路径进行搜索;CONFIG选项表示要以配置文件的方式查找包;QUIET选项可以使CMake在找不到包时不显示错误消息。 find_package命令有两种工作模式,一种是查找配置文件,另一种是查...
因此在使用find_package命令时,我们需要找到正确的库名称。 然后,我们需要在CMakeLists.txt文件中使用find_package命令来查找和配置库。下面是一个典型的find_package的用法示例: find_package(lib_name REQUIRED) 其中,"lib_name"是我们要查找的库的名称,"REQUIRED"表示这个库是必需的,如果没有找到这个库,CMake...