VIP10
本课程属于:047-软件测试与质量工程 后端、数据与云原生工程 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

Makefile与C语言项目实战精讲

📚 共计 30 章节
01
Makefile入门
什么是Makefile · 为什么需要Makefile · Makefile与GCC的关系 · 第一个示例
基础GCC
02
Makefile核心规则
目标、依赖、命令语法 · 规则格式详解 · 伪目标 .PHONY
规则伪目标
03
变量与赋值
变量定义与引用 · = := ?= += 区别与场景
变量赋值
04
自动变量与模式匹配
$@ $< $^ $? · % 模式匹配规则
自动变量模式
05
隐式规则与模式规则
内置隐式规则 · 自定义模式规则 · 取消隐式规则
隐式模式
06
条件判断
ifeq ifneq ifdef ifndef · 条件判断实战
条件逻辑
07
函数使用 (上)
字符串处理:subst patsubst strip findstring
函数字符串
08
函数使用 (下)
文件名函数 · foreach if call shell
函数文件名
09
多目标与多规则
一个规则多个目标 · 一个目标多个规则 · 依赖解析
多目标依赖
10
Makefile递归执行
嵌套调用 · export传递变量 · $(MAKE) 使用
递归嵌套
11
Makefile包含与依赖
include指令 · 自动生成依赖 (gcc -MM)
包含依赖
12
Makefile调试技巧
make -n/-p/-d · info/warning/error函数
调试技巧
13
C语言项目结构
头文件与源文件分离 · 模块化 · include guards
结构模块
14
单目录项目实战
单目录多文件编译 · 生成可执行文件
实战单目录
15
多目录项目实战 (上)
src/include/lib/build 划分 · Makefile架构设计
多目录架构
16
多目录项目实战 (下)
递归Makefile vs 单Makefile · 优缺点对比
对比多目录
17
静态库构建与使用
ar命令 · 创建libxxx.a · 链接静态库
静态库ar
18
动态库构建与使用
gcc -shared · libxxx.so · LD_LIBRARY_PATH · ldconfig
动态库共享
19
静态库与动态库混合
同时链接静态/动态库 · 优先级问题
混合链接
20
编译选项管理
CFLAGS LDFLAGS LDLIBS 分离与组织
选项管理
21
路径管理
VPATH · vpath指令 · 自动搜索源文件
路径VPATH
22
版本管理
版本号定义 · 自动生成version.h · git信息嵌入
版本Git
23
安装与卸载
install目标 · DESTDIR · prefix · uninstall
安装卸载
24
测试与检查
test/check目标 · 静态代码检查 (cppcheck)
测试检查
25
交叉编译
CC/AR/STRIP重定义 · 工具链切换
交叉编译工具链
26
并行编译
make -j · .NOTPARALLEL · 依赖顺序
并行性能
27
清理与维护
clean distclean maintainer-clean 层次划分
清理维护
28
大型项目实战 (上)
基于autotools · configure脚本生成Makefile
autotools大型
29
大型项目实战 (下)
基于CMake · CMakeLists.txt vs Makefile对比
CMake对比
30
最佳实践与总结
常见错误 · 性能优化 · 模板分享 · 课程总结
总结最佳实践