You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Makefile构建规则(make recipe)中@$符号的含义是什么?

Makefile 语法符号解释

你给出的代码片段中不存在整体的@$语法,这两个是互相独立的Makefile规则语法标记,分开说明如下:

  • 行首的@
    Make默认会在执行每一条构建命令前,先把命令本身打印到标准输出,加了@前缀的命令会关闭这个打印行为,仅输出命令执行过程中产生的日志,也就是常说的静默执行。
  • $前缀
    这是Make的变量取值标记,$(变量名)是固定的变量引用语法,作用是把对应变量的定义值替换到当前位置。你代码里的$(OBJCOPY)就是引用提前定义的OBJCOPY变量(一般是交叉编译链的objcopy工具路径),$(BINARY)就是引用提前定义的输出文件前缀变量。

举个实际的展开示例,如果你的Makefile里提前定义了如下变量:

OBJCOPY = riscv64-unknown-elf-objcopy
BINARY = bootloader

那你给出的规则实际执行时会被展开为:

riscv64-unknown-elf-objcopy -S --set-section-flags .bss=alloc,contents -O binary bootloader.elf bootloader.bin

作用是把elf格式的可执行文件转换为不带冗余信息的纯二进制bin文件。

内容的提问来源于stack exchange,提问作者potato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:39:00