如何在makefile中添加多行注释

Ank*_*wal 103 makefile

有没有办法在make语言中注释多行,就像在C语法中一样/* */

Eri*_*ski 142

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

# 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
Run Code Online (Sandbox Code Playgroud)

但是,我想你可能会因为调试原因而暂时注释掉你的makefile块,并且在每一行上添加一个反斜杠并不实际.如果您正在使用GNU make,我建议您使用该ifeq指令,故意使用伪表达式.例如:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 请注意,如果要在规则中"注释掉"行,请不要缩进ifeq,endif行. (3认同)

小智 12

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


Mar*_*zer 7

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

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif
Run Code Online (Sandbox Code Playgroud)

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

  • 那不正确。试试下面的例子: ifeq (0, 1) 不要冒险 ifeq 注释否则麻烦会找你 endif 行首的 **else** 会抛出 make 错误。所以 **else**、**ifeq**、**ifneq** 以及可能我不知道的许多其他符号会给你带来问题。 (3认同)

giu*_*ati 7

define BOGUS
lines
.....
endef
Run Code Online (Sandbox Code Playgroud)


goo*_*uy5 5

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

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

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

- 笔记 -

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

  • 使用块模式更容易。转到第一行开头进行注释,ctrl-v,向下箭头直到末尾,大写 I,#,转义。要删除评论:ctrl-v,一直向下箭头,x (3认同)