2012-01-03 11 views
2

のレシピで先頭に「@」は何ですか、私は次の規則を参照してください。「 @」での目的は何日食によって生成されたmakefileでメイク

./Cores/$(TARGET).core.3.srec : ../$(TARGET).core.3/Debug/$(TARGET).core.3.elf 
     @mkdir -p ./Cores/ 
     @e-objcopy --srec-forceS3 --output-target srec "$<" "[email protected]".temp 
     @echo Creating srec file for CoreID\<0x826\> 
     @head --lines=1 "[email protected]".temp | sed 's/0000/0826/' > "[email protected]" 
     @tail --lines=+2 "[email protected]".temp >> "[email protected]" 

をレシピ・ラインの始まり?

GNUを通して読むユーザーズ・マニュアルを作成するこの@を使用することについての説明が見つかりませんでした。私はそれが実際にそのままシェルに転送されると仮定しました。

したがって、BASHマニュアルを読むと、extglobオプションが設定されている場合、コマンド置換に関連している可能性があります。しかし、これをコマンドラインで試してみるとエラーになりました。

答えて

4

接頭辞@は、コマンドをサイレントモードで実行します。 this section of the GNU make manualを参照してください。

+0

ありがとうございました!ですから、makeコマンドかシェルコマンド(修飾子/指示文)ですか? – ysap

+0

@@%$#! - 私はそれを逃したことを知っていた...ポインタのおかげで。 – ysap

+0

これはGNU makeの機能です。 –

2

@は、レシピを実行するときにコマンドをエコーし​​ます。https://stackoverflow.com/a/867093/60462を参照してください。

+0

ありがとう!ですから、makeコマンドかシェルコマンド(修飾子/指示文)ですか? – ysap

+1

それは 'make'構文だけです。あるいは '@ ls'はあなたにディレクトリリストを提供しましたか? – Jens

関連する問題