VIP8
本课程属于:050-重构、设计与代码质量工程 后端、数据与云原生工程 · 共 8 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

从单文件到多文件:Makefile构建管理实战

📚 共计 30 章节
01
课程导学:为什么要学Makefile?
从单文件编译到多文件管理的痛点,掌握构建本质。
导学痛点
02
单文件编译回顾
gcc编译流程:预处理、编译、汇编、链接,手动编译一个C文件。
gcc流程
03
多文件项目初探
头文件与源文件分离,手动编译多文件项目 (gcc a.c b.c -o main)。
分离手动
04
Makefile初体验
最简单的Makefile,目标、依赖、命令三要素。
三要素入门
05
Makefile变量
自定义变量、自动变量($@ $^ $<)、预定义变量(CC CFLAGS)。
变量自动
06
Makefile规则
显式规则、隐式规则、模式规则 (%.o: %.c)。
规则模式
07
Makefile函数
wildcard、patsubst、notdir、foreach等常用函数。
函数文本
08
Makefile条件判断
ifeq、ifneq、ifdef、ifndef的使用场景。
条件逻辑
09
Makefile伪目标
.PHONY的作用,clean、all等伪目标的实现。
伪目标PHONY
10
多目录管理
VPATH与vpath,让Makefile支持多级目录。
VPATH目录
11
静态模式
静态模式规则 $(objects): %.o: %.c 的妙用。
静态模式
12
Makefile嵌套
使用make -C调用子目录Makefile,大型项目模块化。
嵌套模块
13
Makefile依赖生成
自动生成头文件依赖 (gcc -MM),避免漏编译。
依赖自动
14
Makefile调试
make -n(空跑) -p(打印数据库) -d(调试信息)。
调试诊断
15
Makefile优化
增量编译原理,如何让大型项目编译更快。
增量性能
16
Makefile实战
构建包含src、include、lib、build目录的C项目。
实战结构
17
Makefile与库
静态库(.a)与动态库(.so)的生成与链接。
静态库动态库
18
Makefile与第三方库
链接pthread、m、dl等系统库。
第三方链接
19
Makefile与配置
通过config.mk统一管理编译选项,支持Debug/Release模式。
配置模式
20
Makefile与版本控制
自动获取Git版本号,嵌入到程序中。
Git版本
21
Makefile与测试
添加test目标,自动运行单元测试。
测试自动化
22
Makefile与安装
实现make install、make uninstall,模拟软件安装。
安装卸载
23
Makefile与文档
使用doxygen生成文档,集成到构建流程。
文档Doxygen
24
Makefile与交叉编译
设置CC、AR、STRIP等工具链变量,支持ARM等平台。
交叉编译ARM
25
Makefile与并行编译
make -j的用法,如何安全地使用并行编译。
并行-j
26
Makefile与代码风格
集成clang-format,自动格式化代码。
格式化clang
27
Makefile与静态分析
集成cppcheck,在构建时检查代码质量。
静态分析cppcheck
28
Makefile与持续集成
编写适用于CI/CD的Makefile,支持GitHub Actions。
CI/CDActions
29
Makefile高级技巧
二次展开、递归变量与简单变量、eval函数。
高级eval
30
课程总结:全栈能力回顾与展望
从单文件到多文件,Makefile全栈能力回顾与展望。
总结展望