01
Makefile入门
为什么需要Makefile · 基本规则 · 一个最简单的示例
基础新手
02
Makefile核心语法
目标·依赖·命令写法 · 伪目标 .PHONY
语法必学
03
变量与赋值
= := ?= += 区别 · 自动变量妙用
变量核心
04
模式规则与静态模式
%通配符 · 静态模式让代码更简洁
模式进阶
05
函数的使用
wildcard · patsubst · foreach · shell
函数实用
06
多目标编译
同时编译多个可执行文件或库
多目标项目
07
条件判断
ifeq ifneq ifdef ifndef · 平台差异化编译
条件跨平台
08
文件搜索
VPATH与vpath · 管理分散源码
搜索组织
09
隐式规则
Makefile自带规则 · 何时用/不用
隐式技巧
10
Makefile的嵌套
大型项目submake调用与管理
嵌套大型
11
Makefile的调试
make -p/-d · info/warning/error函数
调试排查
12
跨平台编译概述
什么是跨平台 · 为什么需要跨平台Makefile
概念基础
13
Windows平台编译
MinGW与MSVC环境适配
WindowsMinGW
14
Linux平台编译
GCC与Clang差异 · 最佳实践
LinuxGCC
15
macOS平台编译
Clang特殊性 · 与Linux细微差别
macOSClang
16
交叉编译入门
什么是交叉编译 · 工具链配置
交叉ARM
17
交叉编译实战
为ARM架构编译Hello World
实战ARM
18
检测操作系统
uname命令与Makefile系统检测技巧
检测uname
19
检测编译器
根据CC变量判断当前编译器
编译器CC
20
平台差异化编译
一份Makefile支持Windows/Linux/macOS
跨平台统一
21
架构差异化编译
一份Makefile支持x86/ARM/RISC-V
架构x86ARM
22
库的跨平台管理
静态库与动态库命名·链接差异
库链接
23
头文件路径管理
不同平台头文件差异与统一管理
头文件路径
24
编译选项管理
优化级别·调试符号·警告跨平台统一
选项优化
25
链接选项管理
链接器脚本与库搜索路径差异
链接脚本
26
Makefile模板化
设计一套可复用的跨平台Makefile模板
模板复用
27
持续集成中的Makefile
Jenkins/GitLab CI调用跨平台Makefile
CIJenkins
28
CMake与Makefile
CMake生成原理 · 何时选择CMake
CMake对比
29
Makefile性能优化
并行编译 · 增量编译 · 缓存加速
性能加速
30
综合实战
从零构建支持3平台+2架构的跨平台项目
实战终极