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

Makefile 从零到工程构建

📚 共计 30 章节
01
Makefile入门
什么是Makefile · 为什么需要 · 核心思想:目标、依赖、命令
概念基础
02
第一个Makefile
单文件编译规则 · make执行 · 理解执行流程
实战入门
03
Makefile语法基础
规则结构 · 目标/依赖/命令 · Tab键重要性
语法核心
04
变量与赋值
= := ?= += · 自动变量 $@ $< $^ $?
变量自动
05
模式规则与静态模式
%通配符 · static pattern rules · 简化多文件
模式高效
06
隐含规则与自动推导
隐含规则列表 · 禁用 · 自动推导简化
隐含推导
07
伪目标 .PHONY
为什么需要 · 声明 · all clean install
伪目标规范
08
多目标与多规则
一个规则多目标 · 多规则合并覆盖
多目标结构
09
文件搜索 VPATH/vpath
VPATH变量 · vpath指令 · 源文件搜索路径
搜索路径
10
条件判断
ifeq ifneq ifdef ifneq · 嵌套条件
条件逻辑
11
函数(上)
字符串处理:subst patsubst strip findstring filter
函数字符串
12
函数(下)
文件名操作 · foreach · call
函数文件名
13
多目录工程结构
src/include/build · 顶层与子目录Makefile
工程目录
14
递归执行make
$(MAKE) -C · 传递变量 · 避免递归陷阱
递归子目录
15
Shell命令与错误处理
命令回显@ · 错误处理- · 多行命令
Shell调试
16
依赖关系自动生成
gcc -MM · include .d · 自动依赖更新
依赖自动
17
库的编译与链接
静态库 .a · 动态库 .so · 链接路径
库链接
18
Makefile调试技巧
--just-print · --debug · info/warning/error
调试技巧
19
路径处理
相对/绝对路径 · realpath/abspath · CURDIR
路径变量
20
大型项目Makefile设计
模块化 · 通用模板 · include公共配置
架构大型
21
Makefile与Git版本控制
.gitignore · 版本号自动生成 · 时间戳
Git版本
22
交叉编译Makefile
交叉工具链 · 宿主机/目标机 · sysroot
交叉编译嵌入式
23
Makefile与单元测试
集成CUnit · test目标 · 测试报告
测试CUnit
24
代码风格检查
cppcheck/uncrustify · check目标 · 自动化审查
风格检查
25
文档生成 Doxygen
集成Doxygen · doc目标 · 自动构建文档
文档Doxygen
26
持续集成 CI
Jenkins/GitLab CI · 环境变量 · 构建状态
CI自动化
27
性能优化
减少重编译 · 并行 -j · ccache缓存
优化并行
28
Makefile与CMake对比
CMake概念 · CMakeLists.txt · 迁移
CMake对比
29
实战:嵌入式C项目
裸机编译 · 链接脚本 · hex/bin生成
嵌入式实战
30
实战:C++项目Makefile
C++11/14/17 · 头文件依赖 · 链接Boost
C++Boost