2010-12-20 2726 views

回答

118

不,没有像C-style /* */在makefiles中的评论。正如其他人所建议的那样,您可以使用续行进行多行注释。例如:

# 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 

希望有所帮助。

+0

很好的答案。谢谢! – 2013-06-25 21:10:13

+2

请注意,如果您想在规则中“注释掉”行,请不要缩进ifeq,endif行。 – 2015-10-27 11:41:55

12

我相信答案是否定的。我能找到的唯一评论样式是#对于每一行,或使用\来包装第一行。

+0

这是正确的答案。这不仅仅是**不是**多行注释才会有尾随(反斜线),它只是丑陋而已。我更喜欢在每行的开头添加#(磅)。 – wulfgarpro 2017-01-23 02:15:07

1

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

4

关于使用ifeq在make(1)中执行多行注释的想法的注意事项。他们因为如果你用以下不工作得很好:

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

的IFEQ和ENDIF之间的文本将仍然化妆,这意味着你可以不写任何你在这部分要进行解析。如果你想写一个长评论并在评论中写下你想要的任何内容(包括$符号,冒号和更多,这些都对制作有意义),那么你必须评论每一行。那么为什么ifeq ... :)

+0

这是不正确的。 ifeq中唯一的“解析”gmake文本是查找endif。你可以使用在ifeq中有一些伪造语法的makefile轻松验证。只要ifeq中的条件评估为false,gmake就会高兴地忽略ifeq内部的语法错误。 – 2015-05-19 20:51:42

+1

这是不正确的。试试下面的例子: IFEQ(0,1) 不要冒险IFEQ评论 否则麻烦会找到你 ENDIF 的** **其他在该行开始抛出做成的错误。 所以**其他**,** ifeq **,** ifneq **和其他许多我不知道的符号会给您带来问题。 – 2015-05-19 23:41:39

+0

这是一个公平点,但大多数语法错误将被忽略。 – 2015-05-20 00:25:15

4
define BOGUS 
lines 
..... 
endef 
+1

受到与ifeq'相同的警告我想,但适用于我。谢谢! – 2017-06-04 19:25:35

1

不完全是你在找什么,但在精神上类似。我不认为它是被接受的答案,但也许它可以帮助某人。

假设您正在编辑VIM中的makefile:
要么决定要评论哪些行,要么用'v'选择它们。

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

--Notes--

  • 要打开VIM命令行,按:(结肠)
  • 要为下一个 'n' 个行预习的命令,使用.,+n
  • 使用“v”的采样线看起来像:'<,'>s/^/#/