cmake之链接外部动态库
来源:互联网 发布:json文件加注释 编辑:程序博客网 时间:2024/04/30 22:01
cmake不再使你在构建项目时郁闷地想自杀了。 --佚名KDE开发者
1.写在开头
- 有两种方式,一种是cmake自己内置的find_package,另一种是使用pkg-config。
2. find-package
cmake_minimum_required(VERSION 2.8)find_package(OpenCV REQUIRED)if(OpenCV_FOUND) message(${OpenCV_INCLUDE_DIRS}) message(${OpenCV_LIBRARIES})endif(OpenCV_FOUND)
使用这个命令时,cmake程序会在/usr/share/cmake-x.x/Modules/目录下,寻找FindOpenCV.cmake文件,通过这个文件,读取所有关于OpenCV库的安装信息。
奇怪的是,我的这个目录下,并没有FindOpenCV.cmake文件,但强大的find_package命令还是可以找到opencv的安装信息,怎么回事?
是因为,我安装的版本是cuda版,每次要寻找OpenCV时,它会先找到cuda,然后在cuda的配置文件里面,包含了OpenCV的安装信息。所以,我/usr/share/cmake-x.x/Modules/目录下,有一个FindCUDA.cmake文件。
另外,可以在CMakeLists.txt文件中,添加find_package的寻找路径。
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} <your path>)
是FindXXX.cmake文件的路径
3. pkg-config
cmake_minimum_required(VERSION 2.8)find_package(PkgConfig)pkg_check_modules(OpenCV opencv>=3.1.0)if(OpenCV_FOUND) message(${OpenCV_INCLUDE_DIRS}) message(${OpenCV_LIBRARIES})endif(OpenCV_FOUND)
它寻找PKG_CONFIG_PATH路径下的xxx.pc文件,获取库的相关信息。
pkg-config --variable pc_path pkg-config
终端输入这个命令,可以查看PKG_CONFIG_PATH具体的值。这是我的值:
/usr/local/lib/x86_64-linux-gnu/pkgconfig/usr/local/lib/pkgconfig/usr/local/share/pkgconfig/usr/lib/x86_64-linux-gnu/pkgconfig/usr/lib/pkgconfig/usr/share/pkgconfig
不知道为什么,基于debian的ubuntu总喜欢搞一个x86_64-linux-gnu文件夹。
对于编译安装了多个版本OpenCV库情况,只需要把编译库时生成的opencv.pc文件拷贝到这些目录下,就可以,或者添加opencv.pc路径到PKG_CONFIG_PATH变量。
我把最新版本的opencv.pc文件拷贝到/usr/lib/x86_64-linux-gnu/pkgconfig路径下。
0 0
- cmake之链接外部动态库
- cmake导入外部链接库
- cmake 链接动态链接库
- CMake 构建动态链接库
- 使用CMAKE链接外部的动态库时找不到库文件解决办法(/usr/bin/ld: cannot find lxxx)
- CMake - 可执行文件 - 动态链接库 - libcurl
- cmake编译opencv链接动态库
- androidstudio2.3 jni cmake 链接外部库问题
- 使用cmake生成基于静态库的动态链接库
- 利用CMake生成动态或静态链接库工程
- 利用CMake生成动态或静态链接库工程
- CMake 添加头文件目录,链接动态、静态库
- cmake 添加头文件目录,链接动态、静态库
- cmake 添加头文件目录,链接动态、静态库
- CMake与动态链接库(dll, so, dylib)
- cmake 添加头文件目录,链接动态、静态库
- vs2015 cmake 编译dlib生成动态链接库
- cmake:动态链接库(so)中静态链接tcmalloc(gperftools2.4)暨静态链接libstdc++
- Android小知识——Vibrator使用示例
- 利用ida对程序的静态链接库进行处理
- 通过json发送Http请求
- $.ajax()方法详解
- HDU 5710 Digit-Sum
- cmake之链接外部动态库
- 如何来编辑修改PDF格式的文件
- ERROR: Remote error: BdbQuit 的解决办法
- 程序员的吸星大法-IDA反汇编工具初探
- libevent&&protobuf交叉编译笔记
- Lua内存的监测和回收
- TClientDataSet[5]: 读取数据
- angularJs中directive的scope ‘@’,‘=’区别
- java WebSocket 简易聊天消息推送