VIP20
本课程属于:012-Makefile 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

Makefile原理解析与实战

📚 共计 30 章节
01
Makefile入门
什么是Makefile · 为什么需要Makefile · 与编译过程的关系
基础概念
02
Makefile核心规则
目标、依赖、命令的语法与执行逻辑
语法核心
03
Makefile变量基础
变量的定义、引用与赋值方式(=、:=、?=、+=)
变量赋值
04
Makefile自动变量
$@、$<、$^、$?、$* 等自动变量的使用场景
自动变量符号
05
Makefile模式规则
%通配符的使用,编写通用编译规则
模式通配
06
Makefile函数入门
字符串处理函数(subst、patsubst、strip、findstring)
函数字符串
07
Makefile文件操作函数
wildcard、notdir、dir、suffix、basename
文件路径
08
Makefile条件判断
ifeq、ifneq、ifdef、ifndef 的使用
条件逻辑
09
多目标与伪目标
.PHONY的用法,多目标规则设计
伪目标多目标
10
Makefile隐含规则
make内置的默认规则与取消隐含规则
隐含默认
11
VPATH与vpath
指定源文件搜索路径
路径搜索
12
Makefile嵌套执行
submake的调用与变量传递
嵌套子make
13
命令执行
命令前缀(@、-)、多行命令与shell环境
命令前缀
14
文件包含与模块化
include指令与Makefile模块化
包含模块
15
变量高级
override、export、unexport、环境变量
作用域环境
16
递归变量与简单变量
深入理解变量展开机制
展开递归
17
二次展开
.SECONDEXPANSION的高级用法
二次展开高级
18
函数高级
foreach、if、call、value、origin
函数高级
19
自定义函数
使用call和eval创建可复用的函数
自定义复用
20
生成依赖文件
自动生成.d依赖文件,实现增量编译
依赖增量
21
实战:单目录C项目
单目录C项目编译与清理
实战单目录
22
实战:多目录C项目
支持src、include、lib分离
实战多目录
23
实战:多编译器切换
支持gcc、arm-gcc切换
编译器交叉编译
24
实战:Debug/Release配置
支持Debug与Release两种构建配置
配置构建
25
实战:自动检测变化
自动检测源码变化,只编译修改的文件
增量检测
26
实战:静态库与动态库
生成静态库(.a)与动态库(.so)
库.a.so
27
实战:集成单元测试
集成单元测试框架(如CUnit)的构建
测试CUnit
28
实战:大型项目构建系统
模块化、分层设计
架构模块
29
Makefile与CMake对比
CMake基础语法与Makefile的转换思路
CMake对比
30
Makefile性能优化
并行编译(-j)、减少重建、缓存技巧
性能并行