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

GNU Make使用:语法:请解释示例代码最后两行的编译逻辑

nRF5 SDK GNU Make代码最后两行逻辑解释

首先先贴出完整代码块:

PROJECT_NAME     := PRJ
TARGETS          := nrf52840_xxaa
OUTPUT_DIRECTORY := _build

SDK_ROOT := ../nRF5_SDK_17.1.0_ddde560

$(OUTPUT_DIRECTORY)/nrf52840_xxaa.out: \
  LINKER_SCRIPT  := Core/PRJ.ld

核心逻辑拆解

最后两行是GNU Make的目标特定变量定义语法,具体作用如下:

  • $(OUTPUT_DIRECTORY)/nrf52840_xxaa.out 是本次构建要生成的最终产物——针对nRF52840芯片的可执行镜像文件(.out是包含调试信息的ELF格式文件,可用于烧录和调试)。
  • LINKER_SCRIPT := Core/PRJ.ld 是给这个特定目标单独绑定的变量:明确指定在链接阶段必须使用路径为Core/PRJ.ld的自定义链接脚本,而非nRF5 SDK默认的脚本。

编译执行关联说明

在nRF5 SDK的Makefile框架中,这个定义会传递给后续的链接规则:当构建_build/nrf52840_xxaa.out时,链接器会读取指定的PRJ.ld脚本,按照脚本里定义的内存布局(比如Flash、RAM的起始地址、大小)、代码段/数据段的存放位置等规则,将编译生成的目标文件组合成符合硬件要求的可执行镜像。

这种写法属于Make的目标上下文变量,仅在构建这个特定.out目标时生效,不会干扰其他目标的变量配置,能精准控制单个目标的构建参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:32:27