一个项目包含4个源文件:main.c用来调用其他3个程序;program1.c循环计算s=1+2+3+…+10;program2.c循环计算s=1*2*3*…*10;printstar.c打印“************”。写一个makefile文件
时间: 2023-12-04 10:40:10 浏览: 91
project-makefile:项目制作文件
以下是一个makefile文件的示例,它可以编译和链接这4个源文件:
```makefile
# 定义编译器和编译选项
CC = gcc
CFLAGS = -Wall
# 定义目标文件和依赖关系
TARGET = main
OBJS = main.o program1.o program2.o printstar.o
DEPS = program1.h program2.h printstar.h
# 默认目标
all: $(TARGET)
# 生成目标文件
%.o: %.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $<
# 生成可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 清理中间文件和目标文件
clean:
rm -f $(OBJS) $(TARGET)
```
在这个makefile文件中,我们首先定义了编译器和编译选项。然后,我们定义了目标文件和依赖关系。其中,TARGET表示最终生成的可执行文件名,OBJS表示所有的目标文件,DEPS表示所有的头文件。
接下来,我们定义了一个默认目标all,它依赖于$(TARGET)。all目标的作用是生成最终的可执行文件。
然后,我们定义了一个模式规则,用来生成目标文件。这个规则表示,对于所有的.c文件,我们都可以通过编译器将其编译成.o文件。其中,$<表示依赖文件中的第一个文件,$@表示目标文件。
最后,我们定义了一个规则,用来生成最终的可执行文件。这个规则表示,我们可以通过编译器将所有的目标文件链接起来生成最终的可执行文件。
如果要编译这个项目,只需要在终端中进入makefile文件所在的目录,然后执行make命令即可。make命令会自动读取makefile文件,并根据其中的规则生成最终的可执行文件。
阅读全文