2012-01-03 36 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 Make用戶手冊我找不到@的這種用法。然後我假設它實際上是按照原樣傳遞給shell的。

因此,閱讀BASH手冊時,我可能涉及此用途的唯一地方是在設置extglob選項時進行命令替換。但是,在命令行中嘗試這樣做給了我一個錯誤。

回答

4

@前綴會導致make以無提示方式運行該命令。見this section of the GNU make manual

+0

謝謝!那麼,它是一個make命令還是一個shell命令(修飾符/指令)? – ysap 2012-01-03 06:46:18

+0

@@%$#! - 我知道我錯過了...感謝指針。 – ysap 2012-01-03 06:49:52

+0

這是一個GNU make功能。 – 2012-01-03 06:50:22

2

運行配方時,@抑制回顯命令,請參閱https://stackoverflow.com/a/867093/60462

+0

謝謝!那麼,它是一個make命令還是一個shell命令(修飾符/指令)? – ysap 2012-01-03 06:45:16

+1

它是單獨的'make'語法。還是'@ ls'曾經給你一個目錄列表? – Jens 2015-08-30 17:51:32