C/C++编写一个简单的Makefile
Makefile是用于自动构建和管理代码项目的工具。它可以根据依赖关系和规则来自动化编译和链接程序。本文将介绍如何编写一个简单的Makefile文件来管理C/C++代码项目。
首先,我们假设有一个C/C++项目,包含两个源文件:main.c和utils.c,以及对应的头文件main.h和utils.h。
下面是一个基本的Makefile示例:
# 编译器
CC = gcc
# 编译选项
CFLAGS = -Wall -g
# 目标文件
TARGET = myprogram
# 源文件
SRCS = main.c utils.c
# 对象文件
OBJS = $(SRCS:.c=.o)
# 默认目标
all: $(TARGET)
# 生成可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 生成对象文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(TARGET) $(OBJS)
让我们逐行解释这个Makefile文件:
- 第1行:设置CC变量为gcc,表示我们将使用GCC作为编译器。
- 第4行:设置CFLAGS变量为-Wall -g,表示我们启用了所有警告选项和调试信息。
- 第7行:设置TARGET变量为myprogram,表示生成的可执行文件名为myprogram。
- 第10行:设置SRCS变量为main.c utils.c,表示我们的源文件是main.c和utils.c。