find_package(CURLREQUIRED)include_directories(${CURL_INCLUDE_DIR})target_link_libraries(curltest ${CURL_LIBRARY}) 那么cmake是如何查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如果没有,然后...
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 如果在 CMakeLists.txt 中没有下面的指令: 1 set(CMAKE_MODULE_PATH"Findxxx...
用户可以设置CMAKE_FIND_PACKAGE_PREFER_CONFIG变量为TRUE,让CMake优先使用Config模式。 详细的模块查找过程(翻译的官方文档) find_packge完成的参数列表 find_package(<PackageName> [version] [EXACT] [QUIET][REQUIRED] [[COMPONENTS] [components...]][OPTIONAL_COMPONENTS components...][CONFIG|NO_MODULE][NO_...
cmake_minimum_required( VERSION2.8)//版本要求project( imageBasics )//工程名set( CMAKE_CXX_FLAGS "-std=c++11" )//添加c++ 11标准支持find_package( OpenCV3REQUIRED )//寻找OpenCV.CMakeLists,以此找到包,并赋值各库相关变量include_directories( ${OpenCV_INCLUDE_DIRS} )//OpenCV_INCLUDE_DIRS是关于find...
ind_package旨在使用预先设置的配置文件来查找依赖项, 其函数原型为: find_package(PACKAGE_NAME_CASE_SENSITIVE [version] [EXACT] [QUIET] [REQUIRED] [[COMPONENTS] [components...]] [OPTIONAL_COMPONENTS components...] [CONFIG|NO_MODULE] [NO_POLICY_SCOPE] ...
project( imageBasics )//工程名 set( CMAKE_CXX_FLAGS "-std=c++11" )//添加c++ 11标准支持 find_package( OpenCV 3 REQUIRED )//寻找OpenCV.CMakeLists,以此找到包,并赋值各库相关变量 include_directories( ${OpenCV_INCLUDE_DIRS} )//OpenCV_INCLUDE_DIRS是关于find_package的变量, ...
深入了解find_package之后,我们就明白COMPONENTS其实是一个选项,列出来了必选的模块。 一般我们不会在CMakeLists里面硬编码CMAKE_PREFIX_PATH,推荐通过环境变量找到模块。 Qt的模块是放在Qt/5.15.2/clang_64/lib/cmake,所以我们只需要配置 QT_DIR=Qt/5.15.2/clang_64 ...
3.1.1 使用find_package VS find_library find_package 是CMake 提供的一个强大工具,主要用于在系统中搜索已安装的库并进行配置。相较于 find_library,find_package 拥有更高级的功能,能够自动探测库的路径和链接信息。它通过查找那些配备了配置文件的库——比如 Find<PackageName>.cmake 或<PackageName>Config.c...
1.6 find_package find_package指令用于查找并加载外部项目或库。 find_package(SomeLibrary REQUIRED) 1.7 include_directories include_directories指令用于添加编译器的头文件搜索路径。 include_directories(${SomeLibrary_INCLUDE_DIRS}) 1.8 target_include_directories ...
find_package的查找路径并非一成不变,你需要将依赖库的配置文件放置在正确的目录,如root/share/ 或 root/lib/cmake/,这样Cmake才能顺利找到。推荐使用依赖库自动生成的-config.cmake文件,因为它通常更稳定,且能自动适应库的更新。此外,find_library和find_path用于查找库文件和非库文件,find_...