Makefile命令行构建入门教程

命令行下的自动化利器,Makefile算是前端转全栈/嵌入式必须踩的一课。Windows 上你靠 IDE 活得挺好,但真碰上需要命令行搞定复杂构建的时候,不会写 Makefile 那就抓瞎了。

Makefile 的规则写法其实不难,关键是理解:谁依赖谁,改了谁要重新编译。就像你更新了header.h,那所有引用它的.c文件都得重新编译一遍,否则出 bug 还查不到头。

最常见的套路是:目标文件放前头,依赖文件列后面,再跟一段命令,比如:

main.o: main.c header.h
 gcc -c main.c

每次都写太麻烦?那就用变量。像下面这样写起来清爽不少:

CC = gcc
CFLAGS = -Wall
%.o: %.c
 $(CC) $(CFLAGS) -c $< -o $@

还有一点挺重要,make是看文件修改时间来判断要不要重新编译的,挺聪明,也挺节省时间。你要是用touch改下时间戳,make 就会上当,记住别乱搞。

如果你现在用的是 Linux 或者正在搞嵌入式,那建议把 Makefile 整明白,多库、驱动、工具链都指望它自动化构建。你也可以顺便看看这些资料:

如果你还没写过一个自己的 Makefile,建议从小项目练起,哪怕只有两个.c文件也能写起来练练手,熟练后效率提升还挺的。

doc 文件大小:127.5KB