这里是Linux的make文件教程:http://mrbook.org/tutorials/make/目标具有相关性,其是依赖本身不是目标
下面是一个make文件例如:
all: hello
hello: main.o factorial.o hello.o
g++ main.o factorial.o hello.o -o hello
main.o: main.cpp
g++ -c main.cpp
factorial.o: factorial.cpp
g++ -c factorial.cpp
hello.o: hello.cpp
g++ -c hello.cpp
clean:
rm -rf *o hello
对我来说,这条线是令人困惑的main.o: main.cpp
这是什么意思?据我所知,这意味着目标main.o
具有main.cpp
依赖关系。但没有目标main.cpp
这意味着一个目标(main.o
)具有依赖关系(main.cpp
),该依赖关系(main.cpp
)本身不是目标。那么它是什么(main.cpp
)?
但这是什么意思?这意味着如果该文件存在于当前文件夹中,该目标将运行?依赖可以是一个文件?如果是,这是什么意思? –
那么,我的隐形编辑涵盖了,但我会再说一遍,如果'main.o'的修改日期晚于它的任何文件依赖性(在这种情况下只有'main.cpp'),则规则将执行。 。这是make的主要用例。 – dmckee
由于我不关心和依赖可能是一个目标或文件名。如果它是一个目标,它应该首先运行,如果它是一个文件名,则意味着该文件的存在是该目标运行的先决条件 –