• GNU make manual 翻译( 一百零八)


    继续翻译

    `.SECONDARY'
         The targets which `.SECONDARY' depends on are treated as
         intermediate files, except that they are never automatically
         deleted.  *Note Chains of Implicit Rules: Chained Rules.
    
         `.SECONDARY' with no prerequisites causes all targets to be treated
         as secondary (i.e., no target is removed because it is considered
         intermediate).
    
    `.SECONDEXPANSION'
         If `.SECONDEXPANSION' is mentioned as a target anywhere in the
         makefile, then all prerequisite lists defined _after_ it appears
         will be expanded a second time after all makefiles have been read
         in.  *Note Secondary Expansion: Secondary Expansion.
    
    `.DELETE_ON_ERROR'
         If `.DELETE_ON_ERROR' is mentioned as a target anywhere in the
         makefile, then `make' will delete the target of a rule if it has
         changed and its recipe exits with a nonzero exit status, just as it
         does when it receives a signal.  *Note Errors in Recipes: Errors.
    
    `.IGNORE'
         If you specify prerequisites for `.IGNORE', then `make' will
         ignore errors in execution of the recipe for those particular
         files.  The recipe for `.IGNORE' (if any) is ignored.
    
         If mentioned as a target with no prerequisites, `.IGNORE' says to
         ignore errors in execution of recipes for all files.  This usage of
         `.IGNORE' is supported only for historical compatibility.  Since
         this affects every recipe in the makefile, it is not very useful;
         we recommend you use the more selective ways to ignore errors in
         specific recipes.  *Note Errors in Recipes: Errors.

    .SECONDARY 依赖的目的被认为是中间文件。除了那些永远不会自动删除的。

    *Note Chains of Implicit Rules: Chained Rules.

    没有前提条件的.SECONDARY 导致所有的目的都被当成 从属的(没有目的会被删除,因为它被认为是中间文件)。

    *此处我插一句,这里的说明是非常错误的。我认为正确的说法应当是:中间文件一般会被删除,但是标记为 .SECONDARY 的中间文件不会被删除*

    .SECONDEXPANSION

    如果 .SECONDEXPANSION 作为一个目的被声明在makefile 的某处,那么所有的在此之后的定义的前提条件将在所有 makefile 被读取后,扩展两次。

    *Note Secondary Expansion: Secondary Expansion

    如果 DELETE_ON_ERRORS 作为一个目的在makefile中的任何一个地方被提及,make 将要删除一个规则的目的,如果它在规则中变化了并且此规则的片段返回一个非零值,就和它接收到了一个信号时的行为一样。 *Note Errors in Recipes: Errors.

    `.IGNORE'
    如果你为 .IGNORE 指定前提条件,那么 make 将要在执行片段的过程中忽略错误。.IGNORE 的片段被忽略。

    If mentioned as a target with no prerequisites, `.IGNORE' says to
    ignore errors in execution of recipes for all files. This usage of
    `.IGNORE' is supported only for historical compatibility. Since
    this affects every recipe in the makefile, it is not very useful;
    we recommend you use the more selective ways to ignore errors in
    specific recipes. *Note Errors in Recipes: Errors.

    当 .IGNORE 中没有前提条件的时候,表示为所有文件,忽略片段执行中的错误。这种用法知识为了支持对旧有版本的兼容性而设。由于这影响到makefile中的所有片段,它不是很有用;我们建议你采用更加有选择性的方式来忽略特定片段中的错误。 *Note Errors in Recipes: Errors.

    后文待续

  • 相关阅读:
    GetForegroundWindow 与 GetActiveWindow 的区别 回复 "delphier" 的问题
    给 TStringGrid 添加鼠标拖动功能 回复 "dxx" 的问题
    Delphi 的编译指令(3): 常用的预定义条件标识符
    Delphi 的编译指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDIF
    用多媒体库 Bass.dll 播放 mp3 [17] : 如何从内存流播放 回复 "小李子子" 的问题
    Delphi 的编译指令(4): 编译指令全表(未完)
    窗口跟随 回复 "heyongan" 的问题
    字符串转换到指定格式的宽字符 回复 "厨师" 的问题
    Dll 使用 PChar 参数的小例子 回复 "linximf" 的问题
    上周热点回顾(5.286.3)
  • 原文地址:https://www.cnblogs.com/gaojian/p/2697070.html
Copyright © 2020-2023  润新知