我有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
func1.o: func1.cpp
g++ -c func1.cpp
main.o: main.cpp
g++ -c main.cpp
或
main: main.o func1.o
g++ main.o func1.o -o main
func1.o: func1.cpp
g++ -c func1.cpp
main.o: main.cpp
g++ -c main.cpp
最后两个与经典的不一样吗?一个人比另一个人有一些优势吗?
答案 0 :(得分:0)
不,规则的顺序发挥作用的唯一时间是您只需输入make
,在这种情况下,它可以选择第一个规则作为默认值。
除此之外,make
足够智能,无论文件位于何处,都可以执行相关规则。
答案 1 :(得分:0)
三组ruls之间没有区别。但是,make
知道如何将.cpp
文件构建到目标文件中,因此您真正需要的是:
main: main.o func1.o
g++ main.o func1.o -o $@