当前位置: 首页 > news >正文

cmake配置opencv与boost库

Cmake配置外部依赖库(以Opencv和Boost为例)

Cmake对于外部依赖库,需要知道外部库的头文件路径,库文件路径以及库的名字。比如,对于要使用的Boost库,需要知道头文件的位置,库目录的位置以及库依赖。
具体使用如下:

include_directories(xxx/include/) # 头文件路径
link_directories(xxx/lib/) # 库文件路径
target_link_libraries (foo xx.lib xx.so) # 库的名字

为了使用调用外部库,可以手动指令上述代码中的路径和名称,Cmake提供了find_package程序,用于自动确定上述路径,从而减轻代码移植的复杂度。
程序的参数如下。

find_package(Boost[version] [EXACT]      # 可选项,最小版本或者确切所需版本[REQUIRED]             # 可选项,如果找不到所需库,报错[COMPONENTS <libs>...] # 所需的库名称,比如说. "date_time" 代表 "libboost_date_time") 
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jinzhu1911/article/details/104940277

通过上述程序运行,可以自动确定以下变量。

Boost_FOUND            - 如果找到了所需的库就设为true
Boost_INCLUDE_DIRS     - Boost头文件搜索路径
Boost_LIBRARY_DIRS     - Boost库的链接路径
Boost_LIBRARIES        - Boost库名,用于链接到目标程序
Boost_VERSION          - 从boost/version.hpp文件获取的版本号
Boost_LIB_VERSION      - 某个库的版本

上述代码中,Boost_INCLUDE_DIRS就是头文件所在目录,Boost_LIBRARY_DIRS是库文件所在目录,Boost_LIBRARIES是BOOST所有的库的列表。后续的cmake设置就可以根据此进行设置,如

include_directories(${Boost_INCLUDE_DIRS}) # 头文件路径
link_directories(${Boost_LIBRARY_DIRS}) # 库文件路径
target_link_libraries (foo ${Boost_LIBRARIES}) # 库的名字

对于opencv也是类似,利用find_package(OpenCV REQUIRED)确定以下变量。

OpenCV_VERSION
OpenCV_LIBS
OpenCV_INCLUDE_DIRS

参考资料

CMake中引用Boost库

http://www.lryc.cn/news/353199.html

相关文章:

  • 【Kotlin 一】Kotlin入门知识简介、变量声明、数字类型
  • Java 微信小程序登录(openId方式)
  • 为何程序员35岁就开始被嫌弃了?程序员该如何避免中年危机?
  • 【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)
  • 【Spring Security + OAuth2】授权
  • 失落的方舟台服预下载教程 一键下载+账号注册教程
  • 【启明智显技术分享】SOM2D02-2GW核心板适配ALSA(适用Sigmastar ssd201/202D)
  • 人工智能的发展现状,AI将如何改变IT行业,哪些职业将最先失业
  • request.js使用Promise.all等待所有请求完成再进行数据赋值
  • Java开发者必知的时间处理工具:SimpleDateFormat类详解
  • 构造函数的用法
  • 环形链表Ⅱ-力扣
  • 【microros】解决 microros安装过程中的 undefined reference to `fmt::v6 问题
  • 29. 相似矩阵,若尔当型
  • 【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection
  • Python读写文件
  • docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外
  • 算法训练营第三十九天 | LeetCode 738 单调递增的数字、LeetCode 968 监控二叉树
  • Hive语法学习总结
  • 【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}
  • solidworks画螺母学习笔记
  • WebGL的医学培训软件开发
  • 新时代AI浪潮下,程序员和产品经理如何入局AIGC领域?
  • OWASP top10--SQL注入(一)
  • java —— 类与方法
  • 【MySQL精通之路】InnoDB-启动选项和系统变量
  • 嵌入式linux系统中文件系统制作方法详解
  • AI爆文写作:要写文章爆,这47个爆文前缀少不了!
  • javas-core VS java-object-diff
  • dirsearch指令大全