在软件开发过程中,Makefile是一种常见的构建工具,用于管理和自动化代码的编译、链接和部署等任务。一个通用的Makefile可以帮助我们更高效地管理项目,并简化构建过程。本文将演示如何编写一个通用的Makefile,以便在日常开发中使用。
首先,我们创建一个名为"Makefile"的文件,并在其中添加以下内容:
# 编译器设置
CC := gcc
CFLAGS := -Wall -Wextra -std=c11
# 源文件和目标文件
SRCS := $(wildcard *.c)
OBJS := $(SRCS:.c=.o)
# 可执行文件名
TARGET := demo
# 默认目标
all: $(TARGET)
# 生成目标文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 生成可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
# 清理生成的文件
clean:
rm -f $(OBJS) $(TARGET)
让我们逐行解释上述Makefile的内容:
CC := gcc
:设置编译器为gcc。CFLAGS := -Wall -Wextra -std=c11
:设置编译选项,包括开启所有警告(-Wall)、额外警告选项(-Wextra)和使用C11标准(-std=c11)进行编译。SRCS := $(wildcard *.c)
:使用通配符获取所有的.c文件,并将它们赋值