makefile编译多个文件
时间: 2023-03-31 10:01:23 浏览: 71
可以使用makefile来编译多个文件。在makefile中,可以使用变量来存储文件名和编译选项,然后使用规则来指定如何编译这些文件。例如,可以使用以下规则来编译两个源文件和一个头文件:
```
CC=gcc
CFLAGS=-Wall -g
SRC=main.c foo.c
OBJ=$(SRC:.c=.o)
all: myprog
myprog: $(OBJ)
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
```
在这个makefile中,`CC`变量指定编译器,`CFLAGS`变量指定编译选项,`SRC`变量指定源文件名,`OBJ`变量指定目标文件名。`all`规则指定了最终的目标文件名,`myprog`规则指定了如何生成目标文件,`%.o`规则指定了如何生成中间文件。使用`make`命令可以自动编译所有文件。
相关问题
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命令即可执行编译过程。