在eclipse生成的makefile中,我看到以下规则:
./Cores/$(TARGET).core.3.srec : ../$(TARGET).core.3/Debug/$(TARGET).core.3.elf
@mkdir -p ./Cores/
@e-objcopy --srec-forceS3 --output-target srec "$<" "$@".temp
@echo Creating srec file for CoreID\<0x826\>
@head --lines=1 "$@".temp | sed 's/0000/0826/' > "$@"
@tail --lines=+2 "$@".temp >> "$@"
配方行开头“ @ ”的目的是什么?
阅读GNU Make用户手册我找不到对@的这种用法的引用。然后我假设它实际上是按原样转移到shell。
因此,阅读BASH手册,我可以与此用法相关的唯一地方是在设置extglob
选项时进行命令替换。但是,在命令行中尝试此操作会给我一个错误。
答案 0 :(得分:4)
@
前缀导致make以静默方式运行命令。请参阅this section of the GNU make manual。
答案 1 :(得分:2)
@抑制在运行配方时回显命令,请参阅https://stackoverflow.com/a/867093/60462。