Linux 编写make文件实现编译c代码
时间: 2024-03-24 07:36:25 浏览: 65
好的,下面是一个简单的示例:
假设我们有以下目录结构:
```
project/
├── include/
│ ├── foo.h
│ └── bar.h
├── src/
│ ├── main.c
│ ├── foo.c
│ └── bar.c
└── Makefile
```
其中,`include` 目录存放头文件,`src` 目录存放源文件,`Makefile` 文件用于编译链接生成可执行文件。
现在,我们编写 `Makefile` 文件如下:
```makefile
# 指定编译器
CC = gcc
# 指定编译选项
CFLAGS = -I include
# 指定目标可执行文件
TARGET = project
# 源文件列表
SRCS = $(wildcard src/*.c)
# 目标文件列表
OBJS = $(patsubst %.c, %.o, $(SRCS))
# 默认目标
all: $(TARGET)
# 生成目标可执行文件
$(TARGET): $(OBJS)
$(CC) $^ -o $@
# 生成目标文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理中间文件和目标文件
clean:
rm -f $(OBJS) $(TARGET)
```
接下来,我们打开终端,进入项目目录,执行 `make` 命令即可进行编译链接。
```
$ make
```
如果一切正常,将会生成可执行文件 `project`。
如果需要清理中间文件和目标文件,可以执行 `make clean` 命令。
```
$ make clean
```
阅读全文