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

大型项目Makefile重构与优化实战

📚 共计 30 章节
01
Makefile基础回顾
Makefile是什么、为什么需要它、一个最简单的Makefile示例。
入门基础
02
大型项目痛点分析
编译慢、依赖混乱、可移植性差、维护成本高。
痛点诊断
03
重构第一步:项目结构梳理
模块划分原则,理清依赖关系。
重构设计
04
变量与宏的合理使用
避免硬编码,提升可维护性。
变量宏
05
自动变量与模式规则
$@、$<、$^ 的妙用,减少重复代码。
模式自动化
06
函数式Makefile
$(wildcard)、$(patsubst)、$(foreach) 等核心函数实战。
函数高级
07
多目录编译策略
优雅处理子目录递归与并行编译。
多目录递归
08
依赖关系自动生成
使用 gcc -MM 自动生成 .d 文件,告别手动维护。
依赖自动
09
增量编译优化
只编译修改过的文件,大幅提升构建速度。
增量性能
10
并行编译
-j 参数的正确使用姿势与常见陷阱。
并行加速
11
条件编译与平台适配
通过 $(OS)、$(ARCH) 实现跨平台构建。
跨平台条件
12
Makefile中的错误处理
$(error)、$(warning) 与退出码控制。
错误健壮
13
构建产物管理
目标文件、库文件、可执行文件的分离与清理。
产物清理
14
静态库与动态库的构建
ar、gcc -shared 的集成。
库链接
15
第三方依赖管理
优雅引入外部库(OpenSSL、zlib)。
依赖第三方
16
Makefile中的测试集成
添加 test 目标,自动化单元测试。
测试自动化
17
代码风格检查与格式化
集成 cppcheck、clang-format 到构建流程。
风格检查
18
安装与打包
make install 与 make dist 的实现。
安装打包
19
Makefile与Git集成
自动获取版本号、提交哈希。
Git版本
20
大型项目中的include策略
避免重复包含与循环依赖。
include结构
21
Makefile性能分析
使用 --debug 和 --trace 定位瓶颈。
性能调试
22
从Makefile迁移到CMake
何时该换、如何平滑过渡。
迁移CMake
23
Makefile与CI/CD集成
在Jenkins/GitLab CI中调用Makefile。
CI/CDDevOps
24
容器化构建
在Docker中使用Makefile的最佳实践。
Docker容器
25
Makefile中的缓存机制
ccache 的集成与配置。
缓存ccache
26
分布式编译
distcc 与 Makefile 的协同工作。
分布式distcc
27
Makefile安全实践
避免注入攻击与敏感信息泄露。
安全最佳实践
28
遗留系统重构案例
一个100万行C++项目的Makefile改造实录。
案例重构
29
Makefile文档化
自文档化Makefile与help目标的实现。
文档help
30
课程总结与未来展望
现代构建工具链的演进趋势。
总结趋势