使用Makefile和make工具来编译C程序。
时间: 2024-05-02 11:21:11 浏览: 17
Makefile是一种用来自动化编译程序的文件,它包含了编译程序所需的命令和依赖关系。make是一个工具,它可以根据Makefile中定义的规则来自动编译程序。
以下是一个简单的Makefile文件:
```
CC=gcc
CFLAGS=-Wall -Werror
LDFLAGS=
SOURCES=main.c foo.c bar.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=myprogram
all: $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJECTS) $(EXECUTABLE)
```
在这个Makefile中,我们定义了以下变量:
- CC:编译器的名称
- CFLAGS:编译器的选项
- LDFLAGS:链接器的选项
- SOURCES:源文件的列表
- OBJECTS:目标文件的列表
- EXECUTABLE:可执行文件的名称
我们还定义了以下规则:
- all:默认的目标,编译可执行文件
- $(EXECUTABLE):目标文件依赖于所有的目标文件,链接可执行文件
- %.o:目标文件依赖于对应的源文件,编译目标文件
- clean:清除所有生成的文件
要编译程序,我们只需要在终端输入make命令即可:
```
$ make
```
这将自动编译所有需要的文件,并生成可执行文件。
要清除所有生成的文件,我们可以输入以下命令:
```
$ make clean
```