makefile编译多个c文件生成多个执行文件
时间: 2023-02-23 08:17:43 浏览: 214
为了编译多个c文件并生成多个可执行文件,您可以使用Makefile。
以下是一个简单的例子:
```
# 这是 Makefile
# 目标文件
TARGET1 = main1
TARGET2 = main2
# c 文件
SRC1 = main1.c
SRC2 = main2.c
# 编译器
CC = gcc
# 编译选项
CFLAGS = -Wall -g
all: $(TARGET1) $(TARGET2)
$(TARGET1): $(SRC1)
$(CC) $(CFLAGS) -o $@ $^
$(TARGET2): $(SRC2)
$(CC) $(CFLAGS) -o $@ $^
.PHONY: clean
clean:
rm -f $(TARGET1) $(TARGET2)
```
在终端中运行以下命令以编译和生成可执行文件:
```
make
```
如果您希望删除生成的所有可执行文件,请在终端中运行以下命令:
```
make clean
```
相关问题
makefile 编译多个c文件
要编译多个c文件,可以使用makefile来自动化编译过程。下面是一个简单的makefile示例:
```
CC = gcc
CFLAGS = -Wall -g
SRC = file1.c file2.c file3.c
OBJ = $(SRC:.c=.o)
EXE = myprogram
all: $(EXE)
$(EXE): $(OBJ)
$(CC) $(CFLAGS) $(OBJ) -o $(EXE)
%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJ) $(EXE)
```
其中,CC表示编译器,CFLAGS表示编译选项,SRC表示源文件,OBJ表示目标文件,EXE表示可执行文件。
上面的makefile中,通过定义一个all规则,将$(EXE)作为目标文件,$(OBJ)作为依赖,指定编译器和编译选项,即可自动编译所有的源文件并生成可执行文件。
同时,定义了一个%.o:%.c规则来自动编译每个目标文件。最后,定义了一个clean规则,用于清理生成的目标文件和可执行文件。
使用make命令即可执行编译过程。
makefile编译多个c文件
在 Makefile 中,你可以通过编写规则来编译多个 C 文件。下面是一个示例 Makefile,其中包含了三个规则,分别用于编译 `main.c`、`foo.c` 和 `bar.c`:
```
CC=gcc
CFLAGS=-Wall
myprogram: main.o foo.o bar.o
$(CC) $(CFLAGS) -o myprogram main.o foo.o bar.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
foo.o: foo.c
$(CC) $(CFLAGS) -c foo.c
bar.o: bar.c
$(CC) $(CFLAGS) -c bar.c
```
在该 Makefile 中,`myprogram` 规则定义了如何将 `main.o`、`foo.o` 和 `bar.o` 这三个目标文件链接成可执行文件 `myprogram`。`main.o`、`foo.o` 和 `bar.o` 规则则分别定义了如何编译这三个 C 文件,生成对应的目标文件。
在执行 `make` 命令时,会自动根据依赖关系,先编译 `main.o`、`foo.o` 和 `bar.o` 这三个目标文件,然后再执行 `myprogram` 规则,将它们链接成可执行文件 `myprogram`。
你可以将上面的示例 Makefile 中的 `main.c`、`foo.c` 和 `bar.c` 替换成你自己的源代码文件名,然后保存为 `Makefile` 文件,然后在命令行中执行 `make` 命令即可编译生成可执行文件。
阅读全文