makefile示例
时间: 2023-07-24 17:51:51 浏览: 76
好的,下面是一个简单的Makefile示例:
```
CC = gcc
CFLAGS = -Wall -O2
LDFLAGS = -lm
SRCS = main.c foo.c bar.c
OBJS = $(SRCS:.c=.o)
TARGET = myprogram
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $^ $(LDFLAGS) -o $@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
```
这个示例中,我们首先定义了编译器`CC`、编译选项`CFLAGS`和链接选项`LDFLAGS`等变量。然后,我们指定了源文件`main.c`、`foo.c`和`bar.c`,并将它们转换为对应的目标文件`main.o`、`foo.o`和`bar.o`。接着,我们指定了目标程序的名称`myprogram`。
在`all`目标中,我们通过依赖`$(TARGET)`和`$(OBJS)`来生成目标程序。在生成目标程序的命令中,我们使用了`$^`和`$@`这两个自动变量,分别表示所有依赖文件和目标文件的名称。
在`%.o`规则中,我们使用了模式匹配规则来生成目标文件。在生成目标文件的命令中,我们使用了`$<`和`$@`这两个自动变量,分别表示第一个依赖文件和目标文件的名称。
最后,在`clean`目标中,我们定义了一个清理规则,用于删除所有的目标文件和目标程序。
这只是一个简单的示例,实际的Makefile文件可能包含更多的内容和规则,具体可以根据项目的实际需要进行配置。
阅读全文