【学习笔记】cmake

过程

在这里插入图片描述
在这里插入图片描述

配置阶段-生成makefile文件

cmake -G"MinGW Makefiles" …

构建阶段- 生成目标文件

命令

DEPENDS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
时间戳检查 :CMake 通过比较文件时间戳来判断是否需要重新构建

COMMENT

COMMENT “Compiling ${source_file}”
COMMENT 选项指定的消息是在命令执行 之前 打印的。

DEPENDS 指令详解

DEPENDS 是 CMake 中用于 声明依赖关系 的核心指令,它告诉构建系统: 目标文件/目标的生成依赖于哪些文件或其他目标 。
增量编译的基础 : DEPENDS 让 CMake/Make 能够判断何时需要重新构建。当依赖的文件或目标发生变化(时间戳更新)时,才会触发重新编译。
在这里插入图片描述

add_custom_target

在这里插入图片描述

add_custom_command

在这里插入图片描述

目标的依赖关系:DEPENDS

在这里插入图片描述

关键字

ALL

ALL 关键字表示这是默认构建目标,执行 make 时会自动构建

增量式编译的核心概念

只重新编译 发生变化的源文件及其依赖 ,而非每次都重新编译整个项目。这对于大型项目可以显著缩短构建时间。

核心原理 :通过比较文件的 时间戳 或 内容哈希 ,判断文件是否需要重新编译。
增量编译的本质是 依赖跟踪 :让构建系统知道每个目标文件依赖哪些源文件和头文件,只有当依赖文件发生变化时才重新编译

如何判断是否需要编译

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

导入依赖

在这里插入图片描述
这样表示依赖被正确的导入:生成dep文件,手动解析后使用DEPENS命令;【DEPFILE 无法使用,是给ninja使用的】
在这里插入图片描述

在这里插入图片描述

增量编译过程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

依赖文件-Dependency file

依赖文件的作用头文件被修改时,自动重新编译所有包含它的源文件
在这里插入图片描述

编译选项

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值