我正在阅读有关Makefile的内容,并尝试用它来做一些事情。但是我注意到它打印了echo命令以及与之关联的消息!! (见输出)
这是我的工作:
all: main
main: f1.o f2.o main.o
echo "Linking f1.o f2.o and main.o";
$(CPP) -o $@ main.o f1.o f2.o
main.o: main.cpp
echo "Compiling main.cpp";
$(CPP) -c main.cpp -o $@
f1.o: f1.cpp
echo "Compiling f1.cpp";
$(CPP) -c f1.cpp -o $@
f2.o: f2.cpp
echo "Compiling f2.cpp";
$(CPP) -c f2.cpp -o $@
这是输出:
[mih1406@mih1406-ArchLinux 4]$ make
echo "Compiling f1.cpp";
Compiling f1.cpp
g++ -c f1.cpp -o f1.o
echo "Compiling f2.cpp";
Compiling f2.cpp
g++ -c f2.cpp -o f2.o
echo "Compiling main.cpp";
Compiling main.cpp
g++ -c main.cpp -o main.o
echo "Linking f1.o f2.o and main.o";
Linking f1.o f2.o and main.o
g++ -o main main.o f1.o f2.o
请注意,它会打印两条消息:
echo“编译f1.cpp”;
编译f1.cpp
答案 0 :(得分:3)
默认情况下,make
会回显它即将启动的所有命令。您可以通过使用@
开始相应的行来抑制一个命令,例如
main: f1.o f2.o main.o
@echo "Linking f1.o f2.o and main.o";
$(CPP) -o $@ main.o f1.o f2.o
有关详细信息,请参阅https://www.gnu.org/software/make/manual/html_node/Echoing.html#Echoing。