.PHONY: all clean

定义编译器和编译选项

CC = gcc CFLAGS = -Wall -g

定义目录

OBJDIR = obj BINDIR = bin

定义目标文件和依赖文件

TARGET = $(BINDIR)/main OBJS = $(OBJDIR)/file1.o $(OBJDIR)/file2.o $(OBJDIR)/file3.o

默认编译选项

all: $(TARGET)

目标文件依赖中间文件

$(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^

编译中间文件

$(OBJDIR)/%.o: %.c $(CC) $(CFLAGS) -c -o $@ $<

清除中间文件和可执行文件

clean: rm -rf $(OBJDIR)/*.o $(TARGET)

新增创建目录的命令

$(shell mkdir -p $(BINDIR) $(OBJDIR))

要求编写一个Makefile文件使得编译的中间产品o文件放置在obj目录最终的可执行文件main放置在bin目录。另外要求Makefile中提供clean选项只要输入命令make clean可以将所有生成的o文件和可执行文件删除。

原文地址: https://www.cveoy.top/t/topic/cusJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录