1. ホーム
  2. メイクファイル

[解決済み】Makeでレシピ行の接頭辞として@、-、+がありますが、これは何でしょうか?

2022-04-08 02:42:27

質問

GNU Makefileのマニュアルには、次のように書かれています。 言及 これらの接頭辞は

.ONESHELL が提供された場合、レシピの最初の行だけが特別な接頭辞文字 ('@', '-', '+') のためにチェックされます。

これらの接頭辞はどのような働きをし、どこに記載されているのでしょうか?

どのように解決するのですか?

タグ付けされたコマンドラインに対するmakeの動作を制御します。

  • @ は、実行されるコマンドの通常の 'echo' を抑制する。

  • - は、実行されたコマンドの終了ステータスを無視することを意味します (通常、0 以外の終了ステータスでは、その部分のビルドが停止します)。

  • + は、「このコマンドを make -n ' (または 'make -t' や 'make -q') といった、通常では実行されないコマンドを実行することができます。のPOSIX仕様も参照してください。 make また §9.3 GNU Make マニュアルの

+ の(POSIX標準化された)一般化です。 デファクト (非標準化)メカニズムでは、コマンドラインに ${MAKE} または $(MAKE) の下で実行されます。 make -n .

( @ §5.2 を使用します。 - §5.5 および §5.7.1 の使用について言及しています。 + .)