Makefile够用指南(怎么查看makefile)

70 阅读1分钟

如果你是第一次接触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看能会看不懂 (TARGET):(TARGET): (OBJ)这是什么东西,这其实跟shell命令有关

image-20240416235608082

(来自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