用makefile将C语言文件生成二进制文件
时间: 2024-01-30 12:04:25 浏览: 22
下面是一个简单的Makefile示例,用于将C语言文件编译成二进制文件:
```
CC = gcc
CFLAGS = -Wall -Wextra -std=c99 -O2
SOURCES = main.c file1.c file2.c
OBJECTS = $(SOURCES:.c=.o)
EXECUTABLE = myprogram
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(OBJECTS) -o $@
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJECTS) $(EXECUTABLE)
```
在这个Makefile中,定义了以下几个变量:
- `CC`:C编译器的路径和名称,这里使用的是gcc;
- `CFLAGS`:编译选项,包括开启所有警告、使用C99标准、优化等;
- `SOURCES`:源代码文件的路径和名称;
- `OBJECTS`:目标文件的路径和名称,这里生成的目标文件后缀为.o;
- `EXECUTABLE`:生成的可执行文件的路径和名称。
Makefile中定义了以下几个规则:
- `all`:默认生成规则,依赖于源代码文件和目标文件,生成可执行文件;
- `$(EXECUTABLE)`:生成可执行文件的规则,依赖于目标文件,使用gcc将目标文件链接成可执行文件;
- `.c.o`:将C语言源文件编译成目标文件的规则,依赖于源文件,使用gcc将源文件编译成目标文件;
- `clean`:清理生成的目标文件和可执行文件。
使用Makefile生成二进制文件的方法很简单,只需要在终端中进入源代码所在的目录,然后执行`make`命令即可。执行完成后,将生成一个名为myprogram的可执行文件。