【问题标题】:How to add multi line comments in makefiles如何在 makefile 中添加多行注释
【发布时间】:2011-05-28 10:56:32
【问题描述】:

有没有办法像 C 语法 /* */ 那样注释掉 makefile 中的多行?

【问题讨论】:

  • 你用的是什么版本的make?

标签: makefile


【解决方案1】:

我相信答案是否定的。我能找到的唯一注释样式是 # 用于每一行,或者使用 \ 来换行第一行。

【讨论】:

    【解决方案2】:

    不,makefile 中没有类似 C 风格的 /* */ cmets。正如其他人所建议的那样,您可以使用续行来进行多行注释。例如:

    # This is the first line of a comment \
    and this is still part of the comment \
    as is this, since I keep ending each line \
    with a backslash character
    

    但是,我想您可能出于调试原因希望暂时注释掉您的 makefile 的一部分,并且在每一行添加反斜杠并不实际。如果您使用的是 GNU make,我建议您使用带有故意错误表达式的 ifeq 指令。例如:

    ifeq ("x","y")
    # here's all your 'commented' makefile content...
    endif
    

    希望对您有所帮助。

    【讨论】:

    • 注意,如果你想“注释掉”规则中的行,不要缩进 ifeq, endif 行。
    【解决方案3】:

    在 emacs 中,您可以标记要注释掉的区域并点击 M-;(运行 comment-dwim)。

    【讨论】:

      【解决方案4】:

      关于在 make(1) 中使用 ifeq 执行多行 cmets 的想法的注释。它们不能很好地工作,因为如果您编写以下内容:

      ifeq (0,1)
          do not risk ifeq comments
          else trouble will find you
          ifeq is even worse
      endif
      

      ifeq 和 endif 之间的文本仍将由 make 解析,这意味着您无法在该部分中编写任何您想要的内容。如果你想写一个很长的注释并在注释中写下你想要的任何东西(包括 $ 符号、冒号等等,它们都对 make 有意义),那么你必须对每一行进行注释。那么为什么ifeq...:)

      【讨论】:

      • 这是不正确的。 gmake 对 ifeq 中文本的唯一“解析”是查找 endif。您可以使用 ifeq 中包含一些虚假语法的 makefile 轻松验证这一点。只要 ifeq 中的条件评估为 false,gmake 就会愉快地忽略 ifeq 中的语法错误。
      • 这是不正确的。试试下面的例子: ifeq (0, 1) 不要冒险 ifeq cmets else 麻烦会找你 endif 行首的 else 会抛出 make 错误。所以 elseifeqifneq 以及我不知道的许多其他符号可能会给您带来问题。
      • 这是一个公平的观点,但大多数语法错误将被忽略。
      【解决方案5】:
      define BOGUS
      lines
      .....
      endef
      

      【讨论】:

      • 我想和ifeq 一样,但对我有用。谢谢!
      【解决方案6】:

      不完全是您正在寻找的东西,但在精神上相似。我不希望它成为公认的答案,但也许它可以帮助某人。

      假设您正在 VIM 中编辑您的 makefile:
      决定要评论的行或使用“v”选择它们。

      然后您可以使用正则表达式s/^/#/ 注释掉这些行
      s/^#// 来恢复它们。

      --备注--

      • 要打开 vim 命令行,请按 :(冒号)
      • 要为接下来的“n”行准备命令,请使用.,+n
      • 使用“v”的示例行如下所示:'<,'>s/^/#/

      【讨论】:

      • 更容易使用块模式。转到第一行的开头进行注释,ctrl-v,向下箭头直到结尾,大写 I,#,转义。删除cmets:ctrl-v,一直向下箭头,x
      猜你喜欢
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      相关资源
      最近更新 更多