makefile显示命令

网友投稿 828 2022-09-18

makefile显示命令

每条命令的开头必须以 Tab 键开头,除非命令是跟在依赖规则后的分号后面。在命令行之间中的空格或者空行会被忽略,但是如果该空格或空行是以 Tab 键开头的,那么 make 会认为其是一个空命令。

如果我们在编译过程中,可以显示正在编译哪一步,就会很方便我们对程序编译的监控。我们可以使用makefile的一些显示命令,添加上一些类似注释的信息,伴随编译的过程打印到控制台上。

在makefile中,当我们在命令行前加上@ ,那么这个命令将不会被 make 显示出来。我们常用@echo命令显示一些有用的信息,如我们以下这个makefile文件:

all:main1 main2.PHONY : allMAIN_1_OBJ = main.o hello.o car.omain1: $(MAIN_1_OBJ) @echo 正在创建程序main1... gcc -o main1 $(MAIN_1_OBJ) main.o hello.o:hello.hmain.o car.o:car.hmain2:main2.o @echo 正在创建程序main2... @gcc -o main2 main2.o.PHONY:cleanall cleanobj cleanappcleanall:cleanobj cleanappcleanobj: @echo 正在删除目标文件... -rm *.ocleanapp: @echo 正在删除可执行文件main1 main2 -rm

在命令行前加上@ ,那么这个命令将不会被 make 显示出来:

~/Desktop/mydir$ makecc -c -o main.o main.ccc -c -o hello.o hello.ccc -c -o car.o car.c正在创建程序main1...gcc -o main1 main.o hello.o car.o cc -c -o main2.o main2.c正在创建程序main2...

可以看到echo命令没有被显示出来,gcc -o main2 main2.o这行命令前,因为有@,所以在make时,也没有被显示出来,但是他们都被执行了。

如果执行make命令时,带上参数 -n 或 --just-print,那么其只是显示命令,但不会执行命令:

~/Desktop/mydir$ make -ncc -c -o main.o main.ccc -c -o hello.o hello.ccc -c -o car.o car.cecho 正在创建程序main1...gcc -o main1 main.o hello.o car.o cc -c -o main2.o main2.cecho 正在创建程序main2...gcc -o main2 main2.o

这个功能很方便我们调试Makefile,可以查看书写的makefile命令最后要执行的内容和执行的顺序。

如果执行make命令时,带上参数 -s 或 --silent 或 --quiet 则会禁止命令在控制台的打印,但命令会被执行:

~/Desktop/mydir$ make -s正在创建程序main1...正在创建程序main2...~/Desktop/mydir$ lscar.c car.o hello.c hello.o main2 main2.o main.o modulecar.h hello hello.h main1 main2.c main.c makefile

谢谢阅读

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用MobSF进行Android应用安全测试
下一篇:makefile变量
相关文章

 发表评论

暂时没有评论,来抢沙发吧~