前导“@”是什么?根据 makefile 的配方

发布于 2024-12-23 15:29:39 字数 600 浏览 2 评论 0原文

在 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 用户手册,我找不到对 @ 的使用的引用。然后我假设它实际上按原样转移到外壳。

因此,在阅读 BASH 手册时,我唯一能想到这种用法的地方是设置 extglob 选项时的命令替换。但是,在命令行中尝试此操作给了我一个错误。

In a makefile that is generated by eclipse, I see the following rules:

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

What is the purpose of the "@" at the beginning of the recipe lines?

Reading through the GNU Make user's manual I could not find a reference to this use of @. I then assumed that it is actually transferred as-is to the shell.

So, reading the BASH manual, the only place I could relate to this use is in command substitution when the extglob option is set. However, trying this in the command line gave me an error.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

活泼老夫 2024-12-30 15:29:39

@ 前缀使 make 以静默方式运行该命令。请参阅GNU make 手册的这一部分

The @ prefix causes make to run the command silently. See this section of the GNU make manual.

放肆 2024-12-30 15:29:39

@ 会在运行配方时抑制回显命令,请参阅 https://stackoverflow.com/a/867093/60462

The @ suppresses echoing the command when running the recipe, see https://stackoverflow.com/a/867093/60462.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文