采用一个Makefile文件,执行make命令时同时生成2个可执行文件
时间: 2023-03-27 15:00:19 浏览: 168
可以通过在Makefile文件中定义两个目标来实现同时生成2个可执行文件。例如:
```
all: target1 target2
target1: file1.c file2.c
gcc -o target1 file1.c file2.c
target2: file3.c file4.c
gcc -o target2 file3.c file4.c
```
在终端中执行make命令即可同时生成target1和target2两个可执行文件。
相关问题
makefile文件执行make命令
makefile文件是用来执行make命令的。make命令是一个构建工具,可以自动化编译程序和生成可执行文件的过程。通过makefile可以指定编译时所用的编译器、编译的选项、生成的目标文件等等。因此,makefile文件扮演着重要的角色,使得程序的构建和管理变得更加简便、高效。
编写makefile文件,通过make命令将教材图2.2中的文件编译链接得到可执行文件,要求所有的目标文件和可执行文件都放到当前目录下。
编写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`即可。
阅读全文