3、多个文件¶
增加一个C文件 prog1.c,直接使用gcc方式编译:
gcc prog1.c main.c
gcc -o target prog1.o main.o
考虑写的更通用些,查找目录下所有C文件,编译成 .o, 再链接到一起
基于上一个例子修改如下:
# ------------------------
# Generic Makefile
# ------------------------
# Project name
Target = target
# Compile command and flag
CC = gcc -c
CFLAG =
# Linker command and flag
LINKER = gcc -o
LFLAG =
# Sources file
SOURCES := $(wildcard *.c)
OBJECTS := $(SOURCES:.c=.o)
$(Target) : $(OBJECTS)
$(LINKER) $(Target) $(LFLAG) $(OBJECTS)
@echo "Linking complete!"
$(OBJECTS) : $(SOURCES)
$(CC) $(CFLAG) $(SOURCES)
@echo "Compilation complete!"
PHONY: clean
clean :
rm -rf target $(OBJECTS)
@echo "Cleanup complete!"
注解
wildcard用于查找目录下所有符合规则的文件,SOURCES:.c=.o 把SOURCES中 .c 名字换成 .o