首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
【SLAM】SLAM中常用库的CMake写法(如何添加各种依赖库)
📅 2026/10/22 6:37:01
✍️ 爱科研究院
👁 阅读 3,247
之前LZ写过一个SLAM依赖库安装大全如果按照之前大全安装的方式进行安装后续在编译自己的工程时需要链接各种库文件和头文件但是具体在CMakeLists.txt里怎么使用呢这篇博客就准备汇总各种SLAM常用库的链接方法。1.添加Eigen头文件Eigen通过apt-get安装之后我们要怎么使用这个依赖库呢Eigen有一点很奇怪Eigen库只有头文件所以我们在CMakeLists.txt中是不需要写target_link_libraries因为我们是通过apt安装的所以很容易的知道Eigen库的位置就是在/usr/include/eigen3#添加头文件include_directories(/usr/include/eigen3)因为我们已经知道Eigen具体的位置就不用使用find_package来寻找了虽然有些粗暴但是简单有效。2.添加Pangolin依赖Pangolin的安装也很简单功能主要就是做三维的可视化显示主要依赖库是OpenGL通过apt也很好安装。find_package(Pangolin)include_directories(${Pangolin_INCLUDE_DIRS})add_executable(project_name filename.cpp)target_link_libraries(project_name ${Pangolin_LIBRARIES})3.添加Sophus依赖Sophus实际上是Eigen库的扩展模块Eigen中虽然有几何模块但是没有提供李代数的支持所以Sophus算是一个比较好的李代数库安装参考之前博文。find_package(Sophus REQUIRED)include_directories(${Sophus_INCLUDE_DIRS})add_executable(project_name project_name.cpp)target_link_libraries(project_name ${Sophus_LIBRARIES})4.添加OpenCV依赖OpenCV经常会出现版本不兼容的问题LZ同时安装了OpenCV2和OpenCV3两个版本所以在CMakeLists.txt要指定OpenCV的版本。#指定OpenCV的版本是3.1find_package(OpenCV3.1REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})add_executable(project_name filename.cpp)target_link_libraries(project_name ${OpenCV_LIBS})添加OpenCV要注意一个问题大小写很重要大小写5.添加PCL依赖这个点云库在SLAM应用中还是蛮重要的通常情况下好像也都有安装安装很简单这里还是讲一下CMakeLists.txt中怎么写find_package(PCL REQUIRED COMPONENT common io)include_directories(${PCL_INCLUDE_DIRS})add_definitions(${PCL_DEFINITIONS})target_link_libraries(project_name ${PCL_LIBRARIES})6.添加Ceres依赖Ceres是Google出品的一个优化库安装编译都在LZ之前写过一个SLAM安装大全里都有。因为Ceres不是常用的库所以需要添加一个cmake_modules。LZ这里把对应的cmake_modules文件夹中的文件分享给小伙伴有需要的可以自行下载。链接: http://pan.baidu.com/s/1o8dTy8i 密码: zmiv#这行代码就是添加查找Ceres的一个文件list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)find_package(Ceres REQUIRED)include_directories(${CERES_INCLUDE_DIRS})target_link_libraries(project_name ${CERES_LIBRARIES})7添加G2O的依赖其实这个也是千篇一律换汤不换药。这里也是要注意几个问题第一个要在cmake_module中假如findG2O的文件链接: http://pan.baidu.com/s/1kVp4Ul5 密码: yeu4又需要的小伙伴可以自行下载。第二个注意大小写问题还有数字0和字母0这个还是要注意的。list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)find_package(G2O REQUIRED)include_directories(${G20_INCLUDE_DIRS})target_link_libraries(project_name g2o_core g2o_stuff)SLAM的相关依赖库有很多而且针对不同的代码使用的依赖库是不一样的所以用到一种LZ也会更新一种本篇博客未完待续啦。。。O(∩_∩)O
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/22 6:37:01
【Tensorflow实战系列】TensorFlow实战14:实现估值网络(强化学习二)
2026/10/22 6:37:01
使用vs2015打开.pro文件报错:Project ERROR: Cannot run compiler ‘cl‘ -- 完美解决
2026/10/22 6:32:01
零基础备考大模型:从注意力机制到RAG的考点全景与学习路线
2026/10/22 8:27:44
Spring Boot SSE实时推送实战:替代WebSocket的轻量级方案
2026/10/22 8:27:44
零基础构建Deep Agents智能体:从任务拆解到工具调用与记忆管理的完整实践路线
2026/10/22 8:27:44
订单系统实战:一日速通TypeScript类型建模与业务落地
2026/10/22 8:27:44
3500常用汉字字典:从txt到人名企业名网名生成器实战
2026/10/22 8:27:44
基于Python+CNN的宠物行为训练识别:从数据到系统落地
2026/10/22 8:17:12
EFI程序替代版本更换指南:从原理到实操避坑手册
2026/10/22 0:01:24
电商智能运营体系从0到1:架构设计、落地步骤与避坑指南
2026/10/22 0:01:24
压缩空气储能与热网热惯性联合优化调度:热电联产系统建模与求解
2026/10/22 0:01:24
若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定
2026/10/21 19:05:16
OpenResearch实战:Claude Code、Codex、OpenCode、Cursor 工作流搭建与故障排查
2026/10/21 14:47:26
知识管理核弹:用Obsidian构建第二大脑的工程化方案(TaoToken 统一 Key 接入版)
2026/10/21 19:05:04
金融AI落地指南:从调研报告到技术选型与工程实践
2026/10/22 5:06:15
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/22 2:07:18
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/21 19:01:08
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)