${JSONCPP_ROOT}/include ) set(openssl_root /workspace/xxx/openssl-1.1.1v/out) file(GLOB openssl_libs ${openssl_root}/lib*/*.so) include_directories( ${openssl_root}/include ) 当然,为了避免多个库文件,链接出错的问题,最好单独自己编译Find_xxxx.cmake文件,然后在主CmakeLists.txt中include。 c...
FIND_PACKAGE( name ): 在指定的模块目录中搜索一个名为Find<name>.cmake(例如,FindOSG.cmake)的CMake脚本模块文件,执行其中的内容,以图搜索到指定的外部依赖库头文件和库文件位置。 INCLUDE( file ): 在当前文件中包含另一个CMake脚本文件的内容。 二者啥区别? ……...
CMakeLists.txt实例 find_package(Protobuf REQUIRED)include_directories(${PROTOBUF_INCLUDE_DIR})add_executable(main src/main.cpp)target_link_libraries(main ${PROTOBUF_LIBRARIES}) find_package从默认目录中寻找Protobuf,找到后将头文件目录设置为${PROTOBUF_INCLUDE_DIR},库文件位置设置为${PROTOBUF_LIBRARIE...
在CMake中,find_package命令用于在系统中查找已安装的软件包(如Boost、Qt等),以便可以在项目中使用它们。 默认情况下,find_package会在以下路径中查找软件包: 系统级别的目录:/usr/include、/usr/lib等。 CMAKE_PREFIX_PATH环境变量指定的路径(如果有)。 CMAKE_INSTALL_PREFIX变量指定的路径(如果有)。 可以通过...
message("Find mymath: ${mymath_INCLUDE_DIR}; ${mymath_LIBRARY};") endif() # 执行cmake . cmake . # 输出为 test Find comp test Find mymath: /XXX/mymath; /XXX/mymath/libmymath.a; OPTIONAL_COMPONENTS:与COMPONENTS的区别是,不强制要求这些组件必须存在。不影响CMake的执行。
include_directories($CURL_INCLUDE_DIR) target_link_libraries(myprogram path/curl.so) 1. 2. 3. 那么cmake是怎么查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如果没有,然后在查看它自己的模...
- package_name_INCLUDE_DIRS:包含所找到包的头文件目录的列表。 - package_name_LIBRARIES:包含所找到包的库文件的列表。 为了使用找到的库,我们需要使用include_directories命令来添加找到包的包含目录,并使用target_link_libraries命令将找到的库链接到我们的目标可执行文件或库中。 # 3.使用find_package的最佳实践...
#include <opencv2/opencv.hpp> 1. 而不会出现编译错误,同时定义了变量 OpenCV_LIBS 为 OpenCV 链接库路径,这样我们才能正确链接到 OpenCV 中的库文件,而不会出现类似未定义的引用这样的链接错误。 通过这个例子就可以看出 find_package 本质上就是一个搜包的命令,通过一些特定的规则找到<package_name>Config.cma...
为了使自己的库能够支持find_package()命令,我们需要将库安装到遵循特定布局的目录下,通常包括bin目录(存放可执行文件)、include/math目录(对外提供头文件)、lib目录(存放库文件)以及lib/cmake/math目录(存放cmake文件)。此布局通常基于Linux系统的/usr/local目录。安装库时,应确保遵循此布局以...
include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。