2010-12-20 2736 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/^/#/