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

如何在Makefile中用独立变量替换SRCS、OBJS中的src/与bin/目录?

当然可以!这是Makefile配置里超实用的优化技巧

完全没问题,而且这种写法能让你的Makefile更易维护——以后要修改源文件目录或者目标文件输出目录时,只需要改一处变量就行,不用逐个文件路径去替换。

基础实现方式

你可以先定义两个独立的目录变量,再用它们来构建SRCS和OBJS:

# 定义源文件目录和目标文件输出目录
SRC_DIR := src/
BIN_DIR := bin/

# 基于目录变量构建源文件列表
SRCS := $(SRC_DIR)main.c $(SRC_DIR)sdlshape.c $(SRC_DIR)sdlevent.c
# 同理构建目标文件列表
OBJS := $(BIN_DIR)main.o $(BIN_DIR)sdlshape.o $(BIN_DIR)sdlevent.o

进阶自动匹配写法

如果你的源文件数量较多,还可以用Makefile的内置函数自动匹配源文件,避免手动逐个列举:

SRC_DIR := src/
BIN_DIR := bin/

# 自动匹配src目录下所有.c格式的源文件
SRCS := $(wildcard $(SRC_DIR)*.c)
# 将每个源文件路径转换为bin目录下对应的.o目标文件
OBJS := $(patsubst $(SRC_DIR)%.c, $(BIN_DIR)%.o, $(SRCS))

这种写法的优势很明显:比如哪天你想把src/改成source/,或者bin/改成build/,只需要修改SRC_DIR和BIN_DIR这两行变量定义,所有关联的路径都会自动更新,大幅降低维护成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:32:53