makefile编译多个c文件生成多个执行文件
时间: 2023-02-23 22:17:43 浏览: 57
为了编译多个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文件
Makefile是一个用于编译程序的工具,可以自动化编译多个C文件。下面是一个简单的Makefile示例,它可以编译两个C文件,分别是main.c和func.c:
```
CC=gcc
CFLAGS=-Wall
all: myprogram
myprogram: main.o func.o
$(CC) $(CFLAGS) -o myprogram main.o func.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
func.o: func.c
$(CC) $(CFLAGS) -c func.c
clean:
rm -f *.o myprogram
```
在这个Makefile中,我们定义了以下变量和规则:
- CC:编译器
- CFLAGS:编译选项,这里指定了-Wall选项,表示开启所有警告信息
- all:默认目标,也就是我们要生成的可执行文件myprogram
- myprogram:生成可执行文件的规则,依赖于main.o和func.o两个目标文件
- main.o和func.o:分别编译main.c和func.c生成目标文件
- clean:清理规则,用于删除生成的目标文件和可执行文件
要使用这个Makefile,只需要在命令行中输入make即可。make会自动查找Makefile文件并执行其中的规则,生成可执行文件myprogram。
如果需要添加更多的C文件,只需要在Makefile中添加相应的规则即可。同时,如果需要添加更多的编译选项,也可以在CFLAGS中添加。
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命令即可执行编译过程。