因为据说依赖顺序在 makefile 中确实很重要。我想了解如何:
finalObjectFile: x.o main.o y.o
g++ x.o main.o y.o -o finalObjectFile
main.o: header/x.h source/main.cpp
g++ -c source/main.cpp
x.o: header/x.h source/x.cpp
g++ -c source/x.cpp
y.o: source/y.cpp header/x.h
g++ -c source/y.cpp
在上面的代码中我交换了头文件x.h的位置:
x.o: header/x.h source/x.cpp
g++ -c source/x.cpp
y.o: source/y.cpp header/x.h
g++ -c source/y.cpp
但输出没有受到影响!
哪种依赖关系真正重要的是按顺序排列?
最佳答案
在所示上下文中,源代码之前的 header 和源代码之前的 header 之间没有显着差异。规则说(例如):
x.o
必须比header/x.h
和source/x.cpp
更新。
这两个依赖项出现的顺序无关紧要;如果任一依赖项比 x.o
新,则将执行该命令。
顺序何时重要?举例说明这有点棘手,但如果您有多个中间文件在您进行时生成,则可能是一个因素。如果您执行的某些命令影响多个文件,但您没有正确地告诉 make
所有这些交互,这可能尤其是一个问题。
但是,依赖顺序通常不是问题。
关于c++ - make中的依赖顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8664760/