默认情况下,find_package命令会在一些预定义的路径中搜索库或框架。如果指定了该参数,find_package命令将只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中指定的路径进行搜索。 find_package(MyLib NO_DEFAULT_PATH) 上述代码表示禁用find_package命令的默认路径搜索,只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中...
find_package的两种搜索模式都会按照一定规则从路径下搜索.cmake后缀的文件,两种模式下的.cmake文件作用都是为了给find_package命令的调用方返回有关包的信息(头文件路径、库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和Cmake中fi...
find_package 是CMake 中用于查找并加载外部库或项目的指令。它的主要作用是帮助项目找到并配置所需的依赖项,以便在编译和链接过程中正确地使用这些依赖项。 2. 阐述find_package指令如何查找和定位包 find_package 指令通过以下步骤查找和定位包: 搜索路径:CMake 会在一系列预定义的路径中查找指定的包。这些路径包...
# 将项目目录下的cmake文件夹加入到CMAKE_MODULE_PATH中,让find_pakcage能够找到我们自定义的函数库set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")add_executable(addtest addtest.cc)find_package(ADD)if(ADD_FOUND)target_include_directories(addtest PRIVATE ${ADD_INCLUDE_D...
cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这些modules,可以提高写脚本的效率和脚本通用性。 说起来真的有点太抽象,举个我最近遇到的简单例子吧。
find_package(OpenCV) 查找名为 OpenCV 的包,找不到不报错,事后可以通过 ${OpenCV_FOUND} 查询是否找到。 find_package(OpenCV QUIET) 查找名为 OpenCV 的包,找不到不报错,也不打印任何信息。 find_package(OpenCV REQUIRED) # 最常见用法 查找名为 OpenCV 的包,找不到就报错(并终止 cmake 进程,不再继...
CMake的find_package指令用于查找并载入一个外部包的设置。 基本调用形式和模块模式 find_package(<PackageName>[version][EXACT][QUIET][MODULE][REQUIRED][[COMPONENTS][components...]][OPTIONAL_COMPONENTScomponents...][NO_POLICY_SCOPE]) 查找并载入一个外部包的设置。查找是否成功可以通过<PackageName>_FOUND...
find_package是cmake中的一个命令,用于在系统中查找指定的软件包。它会根据预定义的查找路径和一些规则来定位软件包,并将其相关信息导入到cmake的构建环境中,以便后续的编译和链接过程中使用。 find_package的使用可以分为以下几个步骤: 在CMakeLists.txt文件中使用find_package命令,指定要查找的软件包名称。 cmake...
1. cmake find_package的基本原理 当编译一个需要使用第三方库的软件时,我们需要知道: 比如说,我们需要一个第三方库 curl,那么我们的 CMakeLists.txt 需要指定头文件目录,和库文件,类似: 代码语言:javascript 复制 include_directiories(/usr/include/curl)target_link_libraries(myprogram path/curl.so) ...