我试图了解makefile如何工作。这是一个示例makefile:
all: prog
x.o: x.cpp globals.hh
$(CC) -c x.cpp
y.o: y.cpp globals.hh
$(CC) -c y.cpp
prog: x.o y.o
$(LD) -o prog x.o y.o -lc
如果执行make file
,然后在x.cpp中进行一些更改,然后重复make all
,请重新运行哪些命令?据我了解,以下命令将重新运行:
$(CC) -c x.cpp
and
-o prog x.o y.o -lc
并且如果我改头文件,我认为当我再次制作全部文件时,这三个文件都将重新运行。我对么?顺序是什么?
[此外,我试图了解makefile的依赖关系图如何。我知道x.o,y.o和prog都是这里的目标。但是我的逻辑有意义吗?
似乎对我来说正确。在该订单上找不到任何文档,但是我的测试表明,该文档可能会按照Makefile中指定的顺序从上到下运行,并使用依赖关系逻辑来确定要运行的what。