而cmake内置MODULE方式查找CURL的脚本(cmake-3.17.1-win64-x64/share/cmake-3.17/Modules/FindCURL.cmake)2是按搜索CURL动态库的方式来实现的,在创建CURL::libcurl时并没有设置INTERFACE_LINK_LIBRARIES ,INTERFACE_COMPILE_DEFINITIONS属性 只是按常规设置了
我们以curl库为例,假设我们项目需要引入这个库,从网站中请求网页到本地,我们看到官方已经定义好了FindCURL.cmake。所以我们在CMakeLists.txt中可以直接用find_pakcage进行引用。 find_package(CURL)add_executable(curltest curltest.cc)if(CURL_FOUND)target_include_directories(clib PRIVATE ${CURL_INCLUDE_DIR})t...
使用cmake的Modules目录下的FindCURL.cmake,相应的CMakeList.txt 文件: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 find_package(CURLREQUIRED)include_directories(${CURL_INCLUDE_DIR})target_link_libraries(curltest ${CURL_LIBRARY}) 那么cmake是如何查找的呢? find_package()命令首先会在模块路径中...
cmake_minimum_required(VERSION3.5)project(find_package_learning)find_package(OpenCV4REQUIRED)#查看一下对应的值message(STATUS"OpenCV_DIR : ${OpenCV_DIR}")message(STATUS"OpenCV_INCLUDE_DIRS : ${OpenCV_INCLUDE_DIRS}")message(STATUS"OpenCV_LIBS : ${OpenCV_LIBS}")include_directories(${OPENCV_INCLUDE...
find_package(CURL REQUIRED) include_directories($CURL_INCLUDE_DIR) target_link_libraries(myprogram path/) 1. 2. 3. 那么cmake是怎么查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如果没有...
知其然也要知其所以然,find_package对我们来说是一个黑盒子,那么它是具体通过什么方式来查找到我们依赖的库文件的路径的呢。到这里我们就不得不聊到find_package的两种模式,一种是Module模式,也就是我们引入curl库的方式。另一种叫做Config模式,也就是引入glog库的模式。下面我们来详细介绍着两种方式的运行机制。
我们以curl库为例,假设我们项目需要引入这个库,从网站中请求网页到本地,我们看到官方已经定义好了FindCURL.cmake。所以我们在CMakeLists.txt中可以直接用find_pakcage进行引用。 find_package(CURL)add_executable(curltestcurltest.cc)if(CURL_FOUND)target_include_directories(clibPRIVATE${CURL_INCLUDE_DIR})target...
TARGET_LINK_LIBRARIES(curltest curl) 然后建立 build 目录进行外部构建即可。 方法二:使用 FindCURL 模块( 即:FindCURL 模块) 向src/CMakeLists.txt 中添加: FIND_PACKAGE(CURL) IF(CURL_FOUND) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(curltest ${CURL_LIBRARY}) ...
cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这些modules,可以提高写脚本的效率和脚本通用性。 说起来真的有点太抽象,举个我最近遇到的简单例子吧。
如果curl 库已经安装,但 CMake 仍然报错,可能是因为 CMake 配置文件(如 CMakeLists.txt)中没有正确设置 curl 库的路径。你需要检查 CMakeLists.txt 文件中是否有类似以下的设置: cmake find_package(REQUIRED CURL) 或者,如果使用的是手动指定路径的方式,确保路径设置正确: cmake set(CURL_LIBRARY /path/to...