编写5个.c文件和4个.h文件4、 其中文件1.c 1.h 2.c 2.h 存放在子目录12下,文件3.c 3.h 4.c 4.h 存放在子目录34下,5.c存放在主目录下在该目录下编写Makefile文件并执行编译,生成可执行文件main。执行该文件显示为: test1…… test2…… test3…… test4…… Makefile包含make clean规则。执行make clean后删除所有新生成的文件
时间: 2024-03-07 07:47:24 浏览: 50
以下是5个.c文件和4个.h文件的内容:
1.c
```c
#include "1.h"
void test1() {
printf("This is test1\n");
}
```
1.h
```c
#include <stdio.h>
void test1();
```
2.c
```c
#include "2.h"
void test2() {
printf("This is test2\n");
}
```
2.h
```c
#include <stdio.h>
void test2();
```
3.c
```c
#include "3.h"
void test3() {
printf("This is test3\n");
}
```
3.h
```c
#include <stdio.h>
void test3();
```
4.c
```c
#include "4.h"
void test4() {
printf("This is test4\n");
}
```
4.h
```c
#include <stdio.h>
void test4();
```
5.c
```c
#include <stdio.h>
int main() {
test1();
test2();
test3();
test4();
return 0;
}
```
Makefile
```makefile
CC = gcc
CFLAGS = -Wall -Wextra -Werror
SRCDIR = .
OBJDIR = obj
BINDIR = .
EXE = main
SRC = $(wildcard $(SRCDIR)/*.c)
OBJ = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRC))
.PHONY: clean
all: $(BINDIR)/$(EXE)
$(BINDIR)/$(EXE): $(OBJ)
$(CC) -o $@ $^
$(OBJDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(BINDIR)/$(EXE) $(OBJ)
```
在终端中,进入主目录下,输入 `make` 命令即可编译生成可执行文件 `main`。执行 `./main` 命令即可运行。
执行 `make clean` 命令即可删除所有新生成的文件。
阅读全文