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

请教Makefile中这段规则命令的具体功能是什么

这段Makefile规则的作用拆解

1. build目标

build:
    mkdir -p $@

这条规则的作用是创建名为build的目录:

  • $@是Makefile的自动变量,指代当前目标名(也就是build)
  • mkdir -p命令保证目录能被成功创建——就算目录已存在,或者父级目录不存在,也不会抛出错误

2. 模式规则%: build/%

%: build/%
    cp $< $@

这是一条通用的模式匹配规则,%是通配符,可匹配任意非空字符串:

  • 当你执行make [目标文件名]时,Make会检查build/[目标文件名]是否存在
  • 如果这个依赖文件存在,就执行cp $< $@命令:
    • $<指代第一个依赖文件,也就是build/[目标文件名]
    • $@指代要生成的目标文件,也就是当前目录下的[目标文件名]
  • 简单来说,这条规则就是把build目录里的对应文件复制一份到当前目录。比如执行make report.pdf,只要build/report.pdf存在,就会把它复制到当前目录生成report.pdf

注意:如果build目录还没创建,直接执行make [目标]会因为找不到build/[目标]而报错,需要先执行make build创建目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:45:54