makefile上的行顺序
我有main.cpp(包括main函数)和func1.cpp,我想用一个makefile链接这些文件。经典的形式是:makefile上的行顺序,makefile,gnu-make,Makefile,Gnu Make,我有main.cpp(包括main函数)和func1.cpp,我想用一个makefile链接这些文件。经典的形式是: main: main.o func1.o g++ main.o func1.o -o main main.o: main.cpp g++ -c main.cpp func1.o: func1.cpp g++ -c func1.cpp 或者一个人可以写 main: func1.o main.o g++ main.o func1.o -o main
main: main.o func1.o
g++ main.o func1.o -o main
main.o: main.cpp
g++ -c main.cpp
func1.o: func1.cpp
g++ -c func1.cpp
或者一个人可以写
main: func1.o main.o
g++ main.o func1.o -o main
func1.o: func1.cpp
g++ -c func1.cpp
main.o: main.cpp
g++ -c main.cpp
或
最后两个和经典的有什么不同吗?一个规则比另一个规则有优势吗?不,规则的顺序只在您输入
make
时起作用,在这种情况下,它可以选择第一个规则作为默认规则
除此之外,
make
足够智能,可以执行依赖规则,无论它们在文件中的什么位置。这三组规则之间没有区别。但是,make
知道如何将.cpp
文件构建到目标文件中,因此您真正需要的是:
main: main.o func1.o
g++ main.o func1.o -o $@
或者
g++$^-o$@
来避免重复你自己。
main: main.o func1.o
g++ main.o func1.o -o $@