makefile新增一个 “build” 目录,该目录用于存放所有编译中间生成的 .o 文件以及最终的可执行程序 edit
时间: 2024-09-06 11:07:21 浏览: 18
在Makefile中新增一个用于存放编译中间生成的`.o`文件以及最终的可执行程序`edit`的目录,通常涉及定义一个新的变量来指定该目录,并在编译和链接规则中使用该变量。以下是一个简单的示例来说明如何做到这一点:
```makefile
# 定义一个变量BUILD_DIR,指定存放编译中间文件和可执行文件的目录
BUILD_DIR = build
# 在目录不存在时创建目录的伪目标
$(BUILD_DIR):
@mkdir -p $@
# 编译规则,指定.o文件存放路径
%.o: %.c
gcc -c -o $(BUILD_DIR)/$@ $<
# 链接规则,指定最终的可执行文件存放路径
edit: $(BUILD_DIR) $(BUILD_DIR)/edit.o
gcc -o $(BUILD_DIR)/edit $(BUILD_DIR)/edit.o
# 默认目标,当直接运行make命令时执行
.PHONY: default
default: edit
# 清理规则,用于删除构建的文件和目录
.PHONY: clean
clean:
rm -rf $(BUILD_DIR)
```
在上述Makefile中,首先定义了`BUILD_DIR`变量来指定中间文件和最终可执行文件的存放目录。然后,使用`$(BUILD_DIR)`作为伪目标来创建该目录。编译规则中使用`%.o`模式匹配来编译`.c`文件为`.o`文件,并指定输出到`$(BUILD_DIR)`目录。链接规则定义了如何将`.o`文件链接成最终的`edit`可执行程序,并同样指定输出到`$(BUILD_DIR)`目录。`default`目标用于简化构建过程,而`clean`目标用于清理构建过程中产生的所有文件和目录。