message(STATUS"*** BOOST_ROOT is: ${BOOST_ROOT}") #find_package(Boost REQUIRED) # 查找Boost库find_package(BoostREQUIRED COMPONENTSfilesystem system json program_options date_time)if(Boost_FOUND) include_directories(${Boost_INCLUDE_DIRS}) # 添加Boost头文件搜索路径: ${VCPKG_INSTALLED_DIR}/${V...
如果_FOUND 为真,需要把_INCLUDE_DIR 加入到INCLUDE_DIRECTORIES中,_LIBRARY 加入到TARGET_LINK_LIBRARIES中。 module 模式 find_package将先到 module 路径下查找Find<name>.cmake。首先它搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索/usr/share/cmake-3.5/Modules.比如find_package(Boost)搜索的文件是/usr/sh...
target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。 设置可执行文件的链接库和头文件目录,编译文件。 到现在为止出现了第一个问题。那就是: fin...
add_executable(main src/main.cpp) target_link_libraries(main ${OpenCV_LIBRARIES}) 1. 2. 3. 4. 5. 6. 上面的配置中,find_package从目录中寻找OpenCV,找到后将头文件目录设置为${OpenCV_INCLUDE_DIRS},库文件设为${OpenCV_LIBRARIES},然后在工程中包含OpenCV头文件目录,生成可执行文件,最后链接OpenCV库。
一旦找到了FindXXX.cmake, 则此库一般会提供以下变量,目的是方便调用者快速集成它: <NAME>_FOUND<NAME>_INCLUDE_DIRS or<NAME>_INCLUDES<NAME>_LIBRARIES or<NAME>_LIBS 如果没能找到FindXXX.cmake, 则尝试以Config模式:搜索指定路径下的XXXConfig.cmake或者XXX-config.cmake文件,搜索路径优先是...
find_package(OpenCV REQUIRED) # 最常见用法 查找名为 OpenCV 的包,找不到就报错(并终止 cmake 进程,不再继续往下执行)。 find_package(OpenCV REQUIRED COMPONENTS core videoio) 查找名为 OpenCV 的包,找不到就报错,且必须具有 OpenCV::core 和OpenCV::videoio 这两个组件,如果没有这两个组件也会报错...
根据cmake官方文档可以知道,find_package()有Module模式(基本用法,basic signature)和Config模式(full signature,完全用法),其中Module模式是基础,Config模式则更复杂高级些。 区分Module模式和Config模式 Module模式也就是基础用法(Basic Signature,这里Signature表示“用法”,而不是“签名”),Config模式也就是高级用法(Ful...
Module模式:搜索CMAKE_MODULE_PATH指定路径下的FindXXX.cmake文件,执行该文件从而找到XXX库。其中,具体查找库并给XXX_INCLUDE_DIRS和XXX_LIBRARIES两个变量赋值的操作由FindXXX.cmake模块完成。 Config模式:搜索XXX_DIR指定路径下的XXXConfig.cmake文件,执行该文件从而找到XXX库。其中具体查找库并给XXX_INCLUDE_DIRS和...
使用FindJNI,前面的cmake脚本就可以改成下面这样: 代码语言:javascript 复制 # 加入REQUIRED参数,如果找不到JNI,就报错退出find_package(JNIREQUIRED)# 加入jni支持include_directories(${JAVA_INCLUDE_PATH})include_directories(${JAVA_INCLUDE_PATH2})
find_package(CURLREQUIRED)include_directories(${CURL_INCLUDE_DIR})target_link_libraries(curltest ${CURL_LIBRARY}) 那么cmake是如何查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如果没有,然后...