如果你是第一次接触makefile可以去看这一个视频去了解一些(Makefile 20分钟入门,简简单单,展示如何使用Makefile管理和编译C++代码
www.bilibili.com/video/BV188…)
version1:makefile核心规则
hello: main.cpp printhello.cpp factorial.cpp
g++ -o hello main.cpp printhello.cpp factorial.cpp
规则:依赖
命令
美人计:董卓 吕布 王司徒 貂蝉(这里的顺序很重要貂蝉一定要在王司徒后面,其他无所谓。涉及到一个编译问题)
王司徒巧使连环计 董太师大闹凤仪亭
可能看到version2看能会看不懂 (OBJ)这是什么东西,这其实跟shell命令有关
(来自the missing semester of your cs education 有中文翻译版 missing-semester-cn.github.io/2020/shell-… 墙裂推荐)
CXX = g++
TARGET = hello
OBJ = main.o printhello.o factorial.o
$(TARGET): $(OBJ)
$(CXX) -o $(TARGET) $(OBJ)
会被解释为version1的
hello: main.cpp printhello.cpp factorial.cpp
g++ -o hello main.cpp printhello.cpp factorial.cpp
version3比version2只是更加解耦,version4就是把version已经解出来的东西提炼了一下,得到他们的pattern,从而实现从具体文件到符号的自动pattern match