2010-12-20 210 views

答えて

118

いいえ、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 

は、しかし、私はあなたがおそらく一時的な理由をデバッグし、すべての行にバックスラッシュを追加するためのメイクファイルのチャンクをコメントアウトするために探していることを想像することは本当に実用的ではありません。 GNU makeを使用している場合は、意図的に偽の表現をしたifeqディレクティブを使用することをお勧めします。例:

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

+0

すばらしい答え。ありがとう! –

+2

ルール内の行を「コメントアウト」したい場合は、ifeq、endif行をインデントしないでください。 –

12

私は答えがノーだと信じています。私が見つけることができる唯一のコメントスタイルは、行ごとに#、または\を使用して最初の行をラップします。

+0

これは正解です。それだけではありません**複数行の後ろに\(バックスラッシュ)があるとコメントしているだけで醜いです。私は、各行の始めに#(ポンド)を加えるほうがはるかに好きです。 – wulfgarpro

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の間のテキストは、まだあなたは、そのセクションに好きな書き込みができないことを意味しているメイクによって解析されます。長いコメントを書いてコメントに書いてみたい($記号、コロンなど、すべてが意味を持つ)場合は、すべての1行にコメントを付ける必要があります。だからなぜifeq ...:

+0

これは間違っています。 ifeqの中のテキストの唯一の "解析" gmakeはendifを探すことです。 ifeqの内部にいくつかの偽の構文を持つmakefileを使って、これを簡単に確認することができます。 ifeqの条件がfalseと評価される限り、gmakeはifeq内部の構文エラーをうっかり無視します。 –

+1

これは間違っています。次の例を試してみてください。 ifeq(0、1) はifeqが 他のトラブルが行の先頭に**他にあなた endifの を見つけるコメントリスクはありませんと、エラーに作るスローします。 だから** else **、** ifeq **、** ifneq **、おそらく私が知りたくない他の多くのシンボルは、あなたに問題を与えるでしょう。 –

+0

これは重要なポイントですが、構文エラーの大部分は無視されます。 –

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

は 'ifeq'と同じ警告を受けますが、私にとってはうまくいきます。ありがとう! –

1

あなたが探しているものではありませんが精神に似ています。私はそれが受け入れられた答えであるとは思わないが、多分それが誰かを助けることができる。

VIMでメイクファイルを編集しているとします。
コメントする行を決定するか、「v」で選択します。

次に、あなたがそれらを元に戻すライン
s/^#//をコメントアウトする正規表現s/^/#/を使用することができます。

--Notes--

  • .,+n
  • を使用し、次の 'n' 行のためのコマンドを準備をするには、Vimのコマンドラインを開き、プレス :(結腸)
  • します
  • "v"を使用したサンプルラインは次のようになります。'<,'>s/^/#/
関連する問題