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

Makefile工程编译自动化与效率提升

📚 共计 30 章节
01
Makefile入门
什么是Makefile · 为什么需要Makefile · 编译效率关系 · 第一个示例
基础入门
02
Makefile核心规则
目标·依赖·命令语法 · 规则工作原理 · .PHONY伪目标
核心语法
03
变量与赋值
定义与引用 · $@ $^ $< · = := ?= += 实战区别
变量赋值
04
模式规则与静态模式
%通配符 · 静态模式 · 大型项目减少重复代码
模式高效
05
函数的使用
patsubst/subst/strip · dir/notdir/basename · 条件判断函数
函数字符串
06
条件判断
ifeq/ifneq/ifdef/ifndef · 跨平台编译应用
条件跨平台
07
文件搜索与VPATH
VPATH vs vpath · 多目录源码结构管理
搜索目录
08
隐式规则
内置隐式规则 · 禁用隐式规则 · 常见坑点
隐式规则
09
多目标编译
同时编译多个可执行文件 · 多目标与伪目标配合
多目标编译
10
Makefile嵌套
submake调用 · export传递变量 · $(MAKE)正确使用
嵌套子Make
11
自动生成依赖关系
gcc -MM · .d文件生成与包含 · 增量编译
依赖增量
12
并行编译
-j选项 · 注意事项 · 依赖不完整竞争问题
并行性能
13
Makefile调试技巧
info/warning/error · --just-print · 变量展开查看
调试技巧
14
Shell命令
命令写法 · 执行环境 · @ - + 前缀含义
Shell命令
15
Makefile与Git版本管理
.gitignore处理 · 编译产物与源码分离 · CI/CD实践
GitCI/CD
16
Makefile模板化
通用模板设计 · C/C++混合编译 · 模板参数化
模板工程
17
Makefile与库编译
静态库(.a) · 动态库(.so) · 链接与依赖管理
库链接
18
Makefile与单元测试
集成CUnit/Google Test · test目标 · 测试报告
测试质量
19
代码清理
clean/distclean/mrproper · 多级清理策略
清理维护
20
安装部署
install目标 · DESTDIR/prefix · 安装路径管理
部署安装
21
交叉编译
CC/AR/STRIP重定义 · 交叉编译模板
交叉编译嵌入式
22
代码覆盖率
gcov/lcov集成 · coverage目标 · 覆盖率报告
覆盖率测试
23
代码格式化
集成clang-format/indent · format目标 · 风格检查
格式化风格
24
文档生成
集成Doxygen · doc目标 · 文档自动构建
文档Doxygen
25
容器化编译
Dockerfile调用Makefile · 环境一致性 · 多阶段构建
Docker容器
26
性能优化
减少重新编译 · ccache缓存 · 命令执行顺序优化
性能缓存
27
Makefile与CMake对比
CMake生成原理 · 何时选Makefile/CMake
对比CMake
28
最佳实践
命名规范 · 注释规范 · 模块化 · 错误处理
规范最佳实践
29
高级技巧
递归展开/立即展开 · 二次展开 · eval动态规则
高级动态
30
综合实战
从零构建中型C++项目 · 多平台多配置多目标
实战完整项目