编写makefile文件,通过make命令将教材图2.2中的文件编译链接得到可执行文件,要求所有的目标文件和可执行文件都放到当前目录下。
时间: 2024-10-14 16:08:29 浏览: 20
Linux多个Makefile文件编译,多层次Makefile文件编译和多目标Makefile文件编译
5星 · 资源好评率100%
编写Makefile是一个常见的构建工具任务,特别是在Unix/Linux环境中。为了将教材图2.2中的源文件编译并链接成可执行文件,你需要创建一个名为`Makefile`的文本文件,内容大致如下:
```makefile
# 定义变量
CC = gcc # 使用gcc作为默认的编译器
SOURCES = $(wildcard *.c) # 指定所有.c文件作为源文件
OBJECTS = $(SOURCES:.c=.o) # 将源文件转换为目标文件名
EXECUTABLE = my_program # 可执行文件名称
# 规则:如何从源文件生成目标文件
%.o: %.c
$(CC) -c $< -o $@
# 规则:如何从目标文件生成可执行文件
all: $(EXECUTABLE)
$(CC) $(OBJECTS) -o $(EXECUTABLE)
# 清理规则,删除所有目标文件和可执行文件
clean:
rm -f $(OBJECTS) $(EXECUTABLE)
# 默认目标是构建
.PHONY: all clean
```
在这个Makefile里,我们设置了几个基本规则:
- `%.o: %.c` 是一个依赖规则,当`.c`文件改变时,对应的`.o`目标文件会被更新。
- `all: $(EXECUTABLE)` 当运行`make`命令时,默认会执行这个规则,编译所有`.o`文件然后链接成`my_program`。
- `clean` 规则是用于清理目标文件和可执行文件的。
要使用这个Makefile,只需在终端中进入包含Makefile的目录,并运行`make`命令即可。如果需要修改文件名或编译选项,只需要编辑`Makefile`即可。
阅读全文