SLAM预备知识(1):Cmake 构建系统

1.前言

    我对Cmake的理解:它也是一种变量和指令组成的编程语言,它描述了文件构建过程的程序。

 

 

 

2. 语言层面

2.1 常用变量

 

 

2.2 常用指令

 

 

 

3.常见用法

3.1 添加外部共享库和头文件时

3.1.1 场景解释

      当我们使用一些如opencv,pcl等外部库的时候,编译时常常需要添加外部库的共享库和外部头文件,一般有三个步骤:

(1)添加头文件目录

(2)添加库文件目录

(3)为编译目标添加编译时需要的库文件名

与此对应了三条指令:

(1)include_directories()  :添加头文件位置
(2)link_directories()   :一般情况不需要添加,除非你自己写的动态库或者静态库不在系统的库链接里面
(3)target_link_libraries():为target添加需要链接的共享库

另外有一个小知识点:

#include< > 引用的是编译器的类库路径里面的头文件。

#include" " 引用的是你程序目录的相对路径中的头文件。

3.1.2 代码展示

# opencv 
include_directories( ${OpenCV_INCLUDE_DIRS} )
# eigen 
include_directories( "/usr/include/eigen3/" )

link_directories("/xxx/xxx/xxx")

target_link_libraries( target ${OpenCV_LIBS} ${PCL_LIBRARIES} )

3.2 生成静态库,动态库和可执行文件时

3.2.1 场景解释

    我们写代码最后所做一切工作最后不就是生成三类文件:

(1)静态库

(2)动态库

(3)可执行文件

与此对应了两条指令:
add_library( libname [SHARED | STATIC | MODULE]  source)   根据参数不同可以生成不同类型的库。

add_executable( target source )      生成可执行文件

3.2.2 代码展示

# 添加一个库
add_library( hello libHelloSLAM.cpp )
# 共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )
# 可执行文件
add_executable( useHello useHello.cpp )

4. 小结

 

 

参考文献:

1. http://www.hahack.com/codes/cmake/

2.https://github.com/TheErk/CMake-tutorial

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值