CMakeLists.txt的简单学习教程汇总

最近因为要编辑一个T265的例程,但是里面的CMakeLists中的含义自己不明白,在网上搜集了一些资料,对自己学习进行一下总结也是让需要的人更加明白清楚。
学习这个的最好的方式是自己理解了以后,自己在写一个CMakeLists文件,通过一个简单的Example学会怎么使用。

一、简单了解

先简单了解一下怎么CMakeLists的作用:编写CMakeLists.txt最常用的功能就是调用其他的.h头文件和.so/.a库文件,生成 Makefile,将.cpp/.c/.cc文件编译成可执行文件或者新的库文件。

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (Demo1)
# 指定生成目标
add_executable(Demo main.cc)

CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。符号 # 后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。

经常需要使用的一些命令,方便查看

# 本CMakeLists.txt的project名称
# 会自动创建两个变量,PROJECT_SOURCE_DIR和PROJECT_NAME
# ${PROJECT_SOURCE_DIR}:本CMakeLists.txt所在的文件夹路径
# ${PROJECT_NAME}:本CMakeLists.txt的project名称
project(xxx)

# 获取路径下所有的.cpp/.c/.cc文件,并赋值给变量中
aux_source_directory(路径 变量)

# 给文件名/路径名或其他字符串起别名,用${变量}获取变量内容
set(变量 文件名/路径/...)

# 添加编译选项
add_definitions(编译选项)

# 打印消息
message(消息)

# 编译子文件夹的CMakeLists.txt
add_subdirectory(子文件夹名称)

# 将.cpp/.c/.cc文件生成.a静态库
# 注意,库文件名称通常为libxxx.so,在这里只要写xxx即可
add_library(库文件名称 STATIC 文件)

# 将.cpp/.c/.cc文件生成可执行文件
add_executable(可执行文件名称 文件)

# 规定.h头文件路径
include_directories(路径)

# 规定.so/.a库文件路径
link_directories(路径)

# 对add_library或add_executable生成的文件进行链接操作
# 注意,库文件名称通常为libxxx.so,在这里只要写xxx即可
target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称)

二、常见的详细介绍教程汇总

在网上查阅相关资料的时候,发现了几个博主的介绍比较大的详细,下面就具体的介绍一下,感谢各位博主的分享。
下面的对于各个指令介绍比较详细,携带实例
CMakeLists.txt 语法介绍与实例演练
简单的介绍(生成可执行文件,链接.c.cpp,链接动态库):
超详细的cmake入门教程

CMakeLists.txt文件如何编写?(一 基础篇)
小凡

【CMake】CMakeLists.txt的超傻瓜手把手教程(附实例源码)

对于寻找库的路径的方式几个参考:
find_path、find_library备忘录
cmake - find_library - 自定义库位置(cmake - find_library - custom library location)
find_library

【cmake】——find_path/find_library用法例子

cmake导入so库_ros项目 CMakeLists.txt中添加自己的库路径

cmake导入so库_ros项目 CMakeLists.txt中添加自己的库路径
对于查找库的路径,最直接的方式就是将库路径直接放进去,或者采用变量代表路径直接调用路径即可

#在指定目录下搜索一个库, 保存在变量MY_LIB中

find_library(MY_LIB "usr/lib/libmylib.so" )

#链接这个库

target_link_libraries(${PROJECT_NAME}  ${MY_LIB})
  • 6
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值