find_package()的使用】的更多相关文章

也就是find_package可以帮助直接找到库的头文件和库文件(.lib,dll .etc) References: http://blog.csdn.net/dbzhang800/article/details/6329314 http://blog.csdn.net/zxgis/article/details/7069596 http://blog.csdn.net/bowater/article/details/2477227 http://stackoverflow.com/quest…
find_package其实在windows下扮演的角色并不是很重要.在Unix下就非常重要了,find_package可以根据cmake内置的.cmake的脚本去找相应的库的模块,当然,内建了很多库的模块变量,调用了find_package之后,会有相应的变量“生成”有效. 比如调用了find_package(Qt5Widgets),find_package(Qt4 COMPONENTS QTCORE QTGUI QTOPENGL QTSVG)返回之后 就会有变量Qt5Widgets_FOUN…
在安装完Opencv库之后,打算测试一下Opencv库是否成功安装.下面是用的例子对应的.cpp代码以及对应的CMakeLists.txt代码: .cpp文件: #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv ) { ) { printf("usage: DisplayImage.out <Image_Path>…
1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式. 具体查找路径依次为CMake:  变量${CMAKE_MODULE_PATH}中的所有目录. 如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ ($CMAKE_ROOT的具体值可以通过CMake中message命令输出). $CMAKE_ROOT = /usr/share/cmake-3.7 /usr/sha…
需要使用cmake的find_package将boost库添加到项目中,通过cmake --help-module FindBoost 可以查看cmake引入Boost的帮助信息: 可以看到,Boot_LIBRARIES确实是boost相关的库,刚开始编写的CMakeLists.txt文件如下: cmake_minimum_required(VERSION ) project(boostCmake) set(CMAKE_CXX_STANDARD ) set(Boost_DEBUG ) find_…
1.第一个CMake例子 在 t1 目录建立 main.c 和 CMakeLists.txt(注意文件名大小写): main.c 文件内容: //main.c #include <stdio.h> int main() { printf(“Hello World from t1 Main!n”); return 0; } CmakeLists.txt 文件内容: PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(STATUS "This is…
近期用cmake编译程序时,报错找不到opencv2.由于我电脑里安装了多个版本的opencv,管理不善,借此机会梳理一下思路. 1. Cmake -- find_package(Opencv REQUIRED),寻找指定的库 如果代码中用到了opencv2/3,则需在CMakeLists.txt中添加这个指令,使程序在编译过程中能够找到对应的库.该指令默认优先找到opencv3.如果要用opencv2,有两个方法可以实现: a. 墙裂推荐此法 设置库的路径同时显式指定版本(假定指定版本的ope…
拿Sophus库为例: find_package(Sophus REQUIRED) include_directories(${Sophus_INCLUDE_DIRS}) target_link_libraries(useSophus ${Sophus_LIBRARIES}) 我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实 find_package主要是找到.c…
cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这些modules,可以提高写脚本的效率和脚本通用性. 说起来真的有点太抽象,举个我最近遇到的简单例子吧. 我们写java的JNI接口代码时,肯定是需要jni.h文件的,那么在写cmake脚本中,就需要找到你当前电脑的jni.h的安装位置加入include搜索路径(对了还需要 jni_md.h的位置)…
1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式.具体查找路径依次为CMake: 变量${CMAKE_MODULE_PATH}中的所有目录.如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ ($CMAKE_ROOT的具体值可以通过CMake中message命令输出).这称为模块模式. 2. 如果没找到这样的文件,find_package()会在~/.cmake…