在makefile中是否有像C语法中的/* */
一样的方法可以注释掉多行代码?
在makefile中是否有像C语法中的/* */
一样的方法可以注释掉多行代码?
不,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
然而,我猜想您可能是为了调试原因想要临时注释掉一部分makefile,而在每行末尾添加反斜杠并不实用。如果您正在使用GNU make,请使用ifeq
指令以明确错误的表达式。例如:
ifeq ("x","y")
# here's all your 'commented' makefile content...
endif
我认为答案是否定的。我能找到的唯一的注释样式是在每行前加上#,或者用\将第一行包裹起来。
关于在make(1)中使用ifeq
来进行多行注释的想法,请注意:这种方法并不是非常有效,因为如果您编写以下内容:
ifeq (0,1)
do not risk ifeq comments
else trouble will find you
ifeq is even worse
endif
ifeq和endif之间的文本仍将被make解析,这意味着您不能在该部分中编写任何您想要的内容。如果您想编写长注释并在注释中编写您想要的任何内容(包括具有make含义的$符号、冒号和更多内容),则必须注释每一行。那么为什么使用ifeq
呢...:)
如果相等(0,1)
不要冒险ifeq注释
否则麻烦会找到你
结束如果
开头的else会导致make出错。因此,else、ifeq、ifneq及可能许多其他符号将引起问题。 - Mark Veltzerdefine BOGUS
lines
.....
endef
虽然不完全符合您的要求,但在精神上相似。我并不指望它成为被接受的答案,但或许可以帮助某些人。
假设您正在VIM中编辑makefiles:
要么决定要注释哪些行,要么使用“v”选择它们。
然后,您可以使用正则表达式s/^/#/
来注释掉这些行
和s/^#//
来恢复它们。
--注释--
:
(冒号).,+n
'<,'>s/^/#/
M-;
(它运行comment-dwim
)来注释掉该区域。