Makefile Cheatsheet

Makefile cheatsheet: rules, variables, functions, auto-variables, templates

Makefile Cheatsheet is a free online Command Reference tool. Makefile cheatsheet: rules, variables, functions, auto-variables, templates Related terms: make · makefile · 构建 · 编译 · gcc · 自动化. Use it on this page without signing in.

21 scripts in total

Safe规则target

最简单的规则

target(目标): 依赖文件,缩进一行(必须是 Tab)写命令。运行 make target 执行。

Safephonyclean

伪目标 .PHONY

clean、install 等目标不对应文件,声明为 .PHONY 避免与同名文件冲突,也防止 make 认为已是最新而跳过。

Safeall默认目标

默认目标 all

不指定目标时 make 执行第一个目标;约定俗成用 all 作为总入口。

Caution双冒号多条规则

双冒号规则

同一目标可写多条双冒号规则,每条独立执行;普通单冒号规则同一目标只允许一条。

Safe变量CC

变量定义与引用

= 延迟展开;:= 立即展开;?= 未定义才赋值;+= 追加。引用用 $(VAR) 或 ${VAR}。

Safeoverride命令行

命令行覆盖变量

命令行传入的变量会覆盖 Makefile 内赋值;用 override 强制 Makefile 内值优先。

Safeexport环境变量

导出变量到子进程

export 将变量传给子 make 或 shell 命令;unexport 取消导出。

Safe展开递归变量

= 与 := 的区别

= 延迟展开(使用时才求值),:= 立即展开(赋值时求值)。递归变量会多次展开。

Safe$@$<

常用自动变量

$@ 目标、$< 第一个依赖、$^ 全部依赖、$? 比目标新的依赖、$* 去掉后缀的目标名。

Safe$( @D )目录

$(@D) 与 $(@F) 目录/文件名

$(@D) 目标的目录部分,$(@F) 目标的文件名部分;同理 $(<D) $(<F) 对应依赖。

Safe$*$%

$* 与 $% 特殊变量

$* 模式规则中去掉后缀的骨干部分;$% 用于归档成员规则时取成员名。

Safewildcardpatsubst

wildcard 通配文件

$(wildcard pattern) 展开匹配的文件列表,常与 patsubst 配合收集源文件。

Safeforeach遍历

foreach 遍历

$(foreach var, list, text) 对列表逐项展开。常用于生成多目标。

Safefilter筛选

filter / filter-out 筛选

filter 保留匹配模式的词,filter-out 剔除匹配模式的词,可用于分离不同源文件。

Safeshellgit

shell 函数执行命令

$(shell cmd) 在构建前执行 shell 命令并把输出作为变量值。注意:不要滥用,影响可移植性。

Safeifeq条件

ifeq / else / endif 条件

make 内建条件判断:ifeq/ifneq/ifdef/ifndef,在解析时求值,可控制变量与目标。

Safe多目标批量

多目标与隐式批量

同一规则可写多个目标;配合模式规则或 foreach 批量生成。

CautionC模板

C 项目模板

经典 C 项目 Makefile:自动收集源文件、目录结构清晰、支持 clean。

SafeGo模板

Go 项目模板

Go 项目常用命令封装:构建、测试、lint、清理,支持交叉编译。

SafeNode前端

Node.js 项目模板

前端/Node 项目常用任务:安装依赖、构建、测试、发布。

Dangerdockercompose

Docker 编排模板

用 Makefile 封装 docker compose 常用操作,简化记忆。

Help

使用说明

  1. 左侧选择分类(基础规则、变量、常用函数、自动变量、实战模板等)
  2. 在搜索框输入关键词查找写法
  3. 点击卡片查看完整示例
  4. 点击「复制」粘贴到自己的 Makefile 中使用

常见问题

  • 红色标签是什么? 标有红色「高危」的写法(如 rm -rf 清理规则)可能误删文件,使用前请确认路径
  • 和 CMake 什么关系? CMake 是生成构建系统的工具,Make 是执行构建的工具,二者常配合使用
  • Tab 还是空格? Makefile 规则命令行必须使用 Tab 缩进,这是最常见的报错原因

More Command Reference

View all

FAQ about Makefile Cheatsheet

What can Makefile Cheatsheet do?

Makefile Cheatsheet is a Command Reference tool. Makefile cheatsheet: rules, variables, functions, auto-variables, templates You can finish the job on this page.

Who should use Makefile Cheatsheet?

Anyone handling make · makefile · 构建 · 编译 · gcc · 自动化 who does not want to install desktop software can use Makefile Cheatsheet in the browser.

Is Makefile Cheatsheet safe? Is my data uploaded?

This tool runs in your browser. We do not collect the content you enter into Makefile Cheatsheet just because you used it.

What similar tools exist?

Related tools in the same Command Reference group are listed at the bottom of this page.