首页
›
编程基础与工程化
›
012-Makefile
›
《Makefile性能优化全流程》
VIP20
本课程属于:012-Makefile
编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Makefile性能优化全流程
📚 共计 30 章节
01
Makefile基础回顾
目标、依赖、规则、变量、自动变量
入门
核心
02
编译流程剖析
预处理、编译、汇编、链接,Makefile控制每一步
编译原理
03
增量编译原理
时间戳与依赖链,判断是否需要重新编译
核心机制
04
并行编译入门
-j参数使用,并行编译的收益与风险
加速
基础
05
并行编译进阶
控制并行度,避免资源竞争,-l参数限制负载
进阶
负载
06
Makefile中的函数
wildcard、patsubst、foreach、call等
函数
高效
07
条件判断与分支
ifeq、ifneq、ifdef、ifndef使用场景
逻辑
08
隐式规则与模式规则
利用模式规则减少重复代码,提升维护性
模式
DRY
09
静态模式规则
更精确的规则匹配,避免隐式规则副作用
精确
10
变量赋值方式
=、:=、?=、+=的区别与选择
变量
细节
11
递归变量与简单展开变量
性能影响与调试难度
展开
性能
12
Makefile的二次展开
Secondary Expansion,解决依赖动态生成
高级
13
Shell命令优化
减少Shell调用,$(shell)的陷阱
优化
shell
14
文件路径与目录管理
vpath、VPATH使用,避免路径硬编码
路径
15
Makefile的包含机制
include、-include、sinclude的使用
模块
16
Makefile的调试技巧
make -d、--debug、info/warning/error函数
调试
17
Makefile的性能分析
--debug=basic / -p 分析瓶颈
分析
profiling
18
缓存与预编译头
利用预编译头加速,Makefile配置方法
PCH
加速
19
分布式编译
distcc、ccache集成,环境变量设置
分布式
20
Makefile的模块化设计
大型Makefile拆分为多个子Makefile
架构
21
递归Make的优缺点
$(MAKE) -C的陷阱以及如何避免
递归
注意
22
非递归Make设计
使用include组织子目录,统一管理依赖
非递归
现代
23
依赖生成与.d文件
自动生成.d文件,头文件变更后重新编译
依赖
自动
24
清理与重构
.PHONY目标,clean/distclean/mrproper设计
清理
25
安装与打包
install目标,DESTDIR与prefix变量
部署
26
测试集成
添加test目标,自动化测试与回归测试
测试
CI
27
文档生成
doxygen集成,自动生成API文档
文档
28
持续集成
Jenkins/GitLab CI集成,环境变量传递
CI/CD
29
跨平台兼容
检测操作系统、编译器,条件编译
跨平台
30
性能优化实战
综合案例,从30秒编译优化到5秒
实战
终极
所属VIP或分类
同VIP:Makefile与Qt库链接实战
同VIP:Makefile与Qt项目构建实战
同VIP:Makefile与系统编程入门