六、Linux C 编程 1) 有如下含有 3 个目标体的 makefile 文件: test: kang.o yul.o gcc kang .o yul.o -o test kang.o: kang.c kang.h gcc -Wall -0 -g -c kang.c -o kang.oyul. o: yul.c yul.h gcc -Wall -0 -g -c yul.c -o yul.o 为了简化编写,请将上述文件使用自动变量替换实现。并且根据 makefile的隐含规则,将其在简化。 2) 用 vi 在同一目录下已经编辑了两个简单的 hello 程序,分别为 hello.c 和hello.h,请先在同一目录下用 vi/gedit 编辑 makefile,用一个目标体实现:然后再将其使用变量替换实现。 3) 用 vi 在同一目录下已经编辑了两个简单的 test 程序,分别为 test.c 和test.h,请先在同一目录下用 vi/gedit 编辑 makefile,用两个目标体实现:然后再将其使用变量替换实现。
时间: 2024-03-23 19:41:22 浏览: 163
1) 使用自动变量和隐含规则简化 makefile 文件:
```
CC = gcc
CFLAGS = -Wall -O -g
test: kang.o yul.o
$(CC) $^ -o $@
%.o: %.c %.h
$(CC) $(CFLAGS) -c $< -o $@
```
2) 使用变量替换简化 makefile 文件:
```
CC = gcc
CFLAGS = -Wall -O -g
HELLO_OBJS = hello.o
hello: $(HELLO_OBJS)
$(CC) $^ -o $@
%.o: %.c %.h
$(CC) $(CFLAGS) -c $< -o $@
```
3) 使用变量替换简化 makefile 文件:
```
CC = gcc
CFLAGS = -Wall -O -g
TEST1_OBJS = test1.o
TEST2_OBJS = test2.o
test1: $(TEST1_OBJS)
$(CC) $^ -o $@
test2: $(TEST2_OBJS)
$(CC) $^ -o $@
%.o: %.c %.h
$(CC) $(CFLAGS) -c $< -o $@
```
阅读全文