find_package的两种搜索模式都会按照一定规则从路径下搜索.cmake后缀的文件,两种模式下的.cmake文件作用都是为了给find_package命令的调用方返回有关包的信息(头文件路径、库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和Cmake中fi...
add_executable(my_bin src/my_bin.cpp)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置...
根据PKG_CONFIG_PATH路径找到库文件地址后,就定义了<prefix>_INCLUDE_DIRS和其他的这类变量,后续的用法就与find_package一致。find方法如下: find_package(PkgConfig) pkg_check_modules(BFL REQUIRED orocos-bfl) 使用方法: include_directories(${BFL_INCLUDE_DIRS}) link_directories(${BFL_LIBRARY_DIRS}) 3. ...
find_package(CURL REQUIRED) include_directories($CURL_INCLUDE_DIR) target_link_libraries(myprogram path/curl.so) 1. 2. 3. 那么cmake是怎么查找的呢? find_package()命令首先会在模块路径中寻找Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。如...
include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。
一、find_package 命令基本介绍 在实际开发工程中,经常不可避免会使用到第三方开源库,这些开源库可能是通过apt-get install 命令自动安装到系统目录中的;也有可能是由我们自己下载库的源码,然后通过编译安装到指令目录下。 不管哪种方式安装的库文件,如果我们需要在项目中使用这些库,首先面临的第一个问题,就是怎么找...
find_package(mymath CONFIG REQUIRED COMPONENTS test PATHS ./mymath/mymath ) if(mymath_FOUND) message("Find mymath: ${mymath_INCLUDE_DIR}; ${mymath_LIBRARY};") endif() # 执行cmake . cmake . # 输出为 test Find comp test Find mymath: /XXX/mymath; /XXX/mymath/libmymath.a; ...
include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。
XXX_FOUND代表库是否查找成功XXX_INCLUDE_DIRS代表头文件的路径XXX_LIBRARIES代表库文件的路径 比如,cmake 可以很轻松引入 bzip2 代码语言:javascript 复制 find_package(BZip2)if(BZIP2_FOUND)include_directories(${BZIP_INCLUDE_DIRS})target_link_libraries(test ${BZIP2_LIBRARIES})endif(BZIP2_FOUND) ...
使用FindJNI,前面的cmake脚本就可以改成下面这样: 代码语言:javascript 复制 # 加入REQUIRED参数,如果找不到JNI,就报错退出find_package(JNIREQUIRED)# 加入jni支持include_directories(${JAVA_INCLUDE_PATH})include_directories(${JAVA_INCLUDE_PATH2})