要求编写一个Makefile文件使得编译的中间产品o文件放置在obj目录最终的可执行文件main放置在bin目录。另外要求Makefile中提供clean选项只要输入命令make clean可以将所有生成的o文件和可执行文件删除。
.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))
原文地址: https://www.cveoy.top/t/topic/cusJ 著作权归作者所有。请勿转载和采集!