GNU Makefileマニュアルでは、これらの接頭辞について言及しています。
.ONESHELLが指定されている場合、レシピの最初の行のみが特殊なプレフィックス文字(「@」、「-」、および「+」)についてチェックされます。
これらの接頭辞は何をし、どこで言及されていますか?
GNU Makefileマニュアルでは、これらの接頭辞について言及しています。
.ONESHELLが指定されている場合、レシピの最初の行のみが特殊なプレフィックス文字(「@」、「-」、および「+」)についてチェックされます。
これらの接頭辞は何をし、どこで言及されていますか?
回答:
これらは、タグ付けされたコマンドラインのmakeの動作を制御します。
@
実行されるコマンドの通常の「エコー」を抑制します。
-
は、実行されるコマンドの終了ステータスを無視することを意味します(通常、ゼロ以外の終了ステータスは、ビルドのその部分を停止します)。
+
make -n
コマンドが正常に実行されない場合、「このコマンドを'(または' make -t 'または' make -q ')の下で実行する」を意味します。また、GNU Makeマニュアルの9.3make
および9.3の POSIX仕様も参照してください。
+
表記は、(POSIX標準化)一般化である事実上の コマンドラインを含むことにより(非標準)機構${MAKE}
又は$(MAKE)
下に実行されますmake -n
。
@
コマンドラインがコンソールにエコー出力されないようにします。-s
またはでグローバルに行うことができます--keep-silent
-
何らかの理由でコマンドが失敗した場合でも、makeに続行を指示します。-i
フラグ(または--ignore-errors
)を使用してグローバルに実行できます。
+
あなたが尋ねる前は、私は慣れていませんでした。私が知る限り、それはの効果を打ち消し-n
、-t
と-q
基本的には、実際にコマンドを実行しないようにメイクを教えてすべてが、。したがって、+
前にaがある行はとにかく実行されます。
公式のGnu Makeマニュアルを読んだ場合、それらはすべて第5章で説明されています。「コマンド」の章であった私のマニュアルの古いコピーでは、用語du jourは「レシピ」のようです。