CMakeLists.txt简记

1. CMakeList.txt简介

CMake是一个开源、跨平台的编译、测试和打包工具,它使用比较简单的语言描述编译、安装的过程,输出Makefile或者project文件,再去执行构建。
gcc(GNU Compiler Collection)将源文件编译(Compile)成可执行文件或者库文件;

而当需要编译的东西很多时,需要说明先编译什么,后编译什么,这个过程称为构建(Build)。常用的工具是make,对应的定义构建过程的文件为Makefile;

而编写Makefile对于大型项目又比较复杂,通过CMake就可以使用更加简洁的语法定义构建的流程,CMake定义构建过程的文件为CMakeLists.txt。
在这里插入图片描述

2. CMakeLists.txt文件中常用的CMake的语法:

# 设置CMake最低版本要求  
cmake_minimum_required(VERSION 3.5.1)
# 设置项目名称和版本  
project(pro_name VERSION 1.0)  
# 设置C++标准  
set(CMAKE_CXX_STANDARD 17)  
set(CMAKE_CXX_STANDARD_REQUIRED True) 
find_package() 查找建构是需要的其他 CMake/Catkin 包
add_message_files() add_service_files() add_action_files 生成Message/Service/Action
generate_messages() 调用消息生成
catkin_package() 指定包的构建信息
add_library()/add_executable()/target_link_libraries() 用于构建的库,可执行代码
install() 安装规则

# 添加源文件到项目 
add_executable(${PROJECT_NAME}
    ${PROJETC_SRCS}
)
file(GLOB PROJETC_SRCS
    ${CMAKE_CURRENT_SOURCE_DIR}/src/**.cc
)
# 包含Include dependent
target_include_directories(${PROJECT_NAME}
        PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
        PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
        )
#包含路径
include_directories(
    ${CMAKE_SOURCE_DIR}
    ${CMAKE_BINARY_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/src
)  

3.常用内置变量:


PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR/_SOURCE_DIR: 为包含PROJECT()命令的最近一个CMakeLists.txt文件所在的文件夹路径,即最外层CMakeLists.txt所在目录最外层。
PROJECT_BINARY_DIR/CMAKE_BINARY_DIR/_BINARY_DIR: 运行cmake命令的目录,即工程编译发生的路径。
EXECUTABLE_OUTPUT_PATH: 指定最终的可执行文件的位置
LIBRARY_OUTPUT_PATH: 设置库文件的输出目录
CMAKE_CURRENT_SOURCE_DIR:当前CMakeLists.txt所在目录

参考:
https://zhuanlan.zhihu.com/p/367808125
https://blog.csdn.net/qq_33726635/article/details/121896681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李霁明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值