用三种不同方法编写Linux编写makefile文件生成a.o,b.o,b,运行结果过执行cleaN
时间: 2024-02-24 15:53:37 浏览: 86
LINUX+下Makefile如何编写的经典文档.pdf
5星 · 资源好评率100%
好的,下面我会分别介绍三种不同的方法来编写 Linux 的 makefile 文件,用于生成 a.o、b.o 和 b 可执行文件,同时支持清除中间文件和可执行文件。
方法一:
```
CC = gcc
CFLAGS = -Wall -g
OBJECTS = a.o b.o
all: b
b: $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o b
a.o: a.c
$(CC) $(CFLAGS) -c a.c
b.o: b.c
$(CC) $(CFLAGS) -c b.c
.PHONY: clean
clean:
rm -f $(OBJECTS) b
```
方法二:
```
CC = gcc
CFLAGS = -Wall -g
all: b
b: a.o b.o
$(CC) $(CFLAGS) -o b a.o b.o
a.o: a.c
$(CC) $(CFLAGS) -c a.c
b.o: b.c
$(CC) $(CFLAGS) -c b.c
.PHONY: clean
clean:
rm -f *.o b
```
方法三:
```
CC = gcc
CFLAGS = -Wall -g
.PHONY: all clean
all: b
b: a.o b.o
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *.o b
```
这三种方法基本上都是相同的,只是写法上略有差异。其中第三种方法使用了通配符和自动变量,可以减少代码量,使 makefile 文件更加简洁。
不管使用哪种方法,最后都需要添加一个 clean 目标,用于清除中间文件和可执行文件,避免占用空间。
希望这个回答能够帮助你。
阅读全文