01
交叉编译概念
什么是交叉编译 · 为什么需要 · 宿主机与目标机 · 工具链组成
基础概念
02
工具链安装
下载安装ARM GCC · 环境变量 · 验证工具链
实操环境
03
Makefile基础
规则与目标 · 依赖关系 · 最简单的Makefile
Makefile入门
04
Makefile变量
自定义变量 · 自动变量($@ $^ $<) · 赋值方式(= := ?= +=)
变量语法
05
Makefile函数
字符串处理 · 文件名函数 · foreach与call
函数进阶
06
Makefile条件判断
ifeq/ifneq/ifdef/ifndef · 多目标编译
条件逻辑
07
Makefile隐含规则
隐含规则列表 · 模式规则 · VPATH与vpath
模式自动化
08
Makefile实战
单/多目录 · 伪目标 · clean与distclean
项目实战
09
Makefile交叉编译
指定CC/AR/LD · --sysroot · 交叉编译C项目
交叉编译ARM
10
Makefile进阶
自动生成依赖(gcc -MM) · include · 嵌套Makefile
高级依赖
11
CMake入门
CMake是什么 · CMakeLists.txt · cmake --build
CMake入门
12
CMake基础语法
cmake_minimum_required · project · add_executable/library
语法构建
13
CMake变量
set/unset · 缓存变量 · 环境变量 · 内置变量
变量缓存
14
CMake列表与字符串
list操作 · string操作 · math运算
列表字符串
15
CMake条件与循环
if/elseif/foreach/while · break/continue
控制循环
16
CMake函数与宏
function/macro · ARGC/ARGV/ARGN · return
函数宏
17
CMake目标属性
target_include/link/compile · 编译选项
属性目标
18
CMake生成器表达式
$<...>语法 · 条件编译 · Debug/Release
表达式配置
19
CMake模块与find_package
FindThreads/OpenSSL · 自定义Find模块
模块查找
20
CMake交叉编译
CMAKE_TOOLCHAIN_FILE · 工具链文件 · 系统/处理器
交叉编译工具链
21
CMake实战
单/多文件 · 静态库与动态库
项目库
22
CMake与外部依赖
FetchContent · ExternalProject · add_subdirectory
依赖外部
23
CMake测试
enable_testing · add_test · ctest · GoogleTest
测试CTest
24
CMake安装与打包
install命令 · CPack · deb/rpm包
安装打包
25
Makefile与CMake对比
语法 · 可维护性 · 跨平台 · 适用场景
对比选型
26
构建系统优化
增量编译 · 并行make -j · ccache加速
优化加速
27
调试构建问题
make V=1 · cmake --trace · 常见错误
调试排错
28
项目实战一 (Makefile)
嵌入式Linux ARM · Makefile交叉编译
实战ARM
29
项目实战二 (CMake)
嵌入式Linux ARM · CMake交叉编译
实战ARM
30
项目实战三 · 大型项目
Makefile+CMake · 第三方库 · 内部模块
综合大型