zoukankan      html  css  js  c++  java
  • GNU make学习笔记

    第五章:规则的命令

    5.1 命令的回显

    make在执行命令之前会把要执行的命令输出到标准输出设备,称之为"回显"。

    如果规则的命令以字符"@"开始,则make在执行这个命令的时候就不会回显这个将要被执行的命令。

    另外,如果使用make的命令行参数"-n"或者"—just-print",那么make执行时只显示所要执行的命令,但不会 真正地去执行这些命令。

    只有在这种情况下make才会打印出所有make需要执行的命令,其中也包括了使用"@"字符开始的命令。这个选项对于我们调试Makefile非常有用,使用这个选项我们可以按执行顺序打印出Makefile中所有需要执行的所有命令。

    而make参数"-s"或"—slient"则是禁止所有执行命令的显示,就好像所有的命令均使用"@"开始一样。在Makefile中使用没有依赖的特殊目标".SILENT"也可以禁止命令的回显,但是它不如"@"来的灵活。因此在书写Makefile的时候,我们推荐使用"@"来控制命令的回显。

    objects = hello, world
    
    foo.o: foo.c defs.h; @echo first command demo # module for twiddling the frobs
      cc -c -g foo.c
      @echo $(objects)
    
    hello:
      @echo hello, linux
    
    .PHONY: clean
    clean:
      -@rm -rf *.o
    
    empty.command:
    
    
      # this is a empty command demo

    P. S. 这个回显还是很好理解的,回显技能Get,√。

    5.2 命令的执行

    规则中,当目标需要被重建时。此规则所定义的命令将会被执行,如果是多行命令,那么每一行命令将在一个独立的子shell进程中被执行(就是说,每一行命令的执行是在一个独立的shell进程中完成的)。因此,多行命令之间的执行是相互独立的,相互之间不存在依赖(多条命令的执行为多个相互独立的进程)。

  • 相关阅读:
    form标签
    roadmap
    自我介绍
    3 week work—Grid Layout
    3 week work—Position
    2nd week
    objects
    个人简介
    7th week :DOM BOM
    颜色表示法
  • 原文地址:https://www.cnblogs.com/tuhooo/p/8992337.html
Copyright © 2011-2022 走看看