gcc 多文件编译Makfile

CC		= gcc 
CFLAGS	= -Wall -O0 -g  
SRC		= $(wildcard *.c)
SRC		+= $(wildcard ./easylogger/port/*.c) 
SRC		+= $(wildcard ./easylogger/src/*.c) 
SRC		+= $(wildcard ./easylogger/plugins/file/*.c) 
INCLUDE = -I./easylogger/inc	-I./easylogger/plugins/file
LIB		= -lpthread
OBJ		= $(patsubst %.c, %.o, $(SRC))
APP		= go

all: $(APP)	

$(APP):	$(OBJ)
	$(CC) out/*.o -o $@ $(LIB)
	mv $@ out/

%.o:%.c
	$(CC) $(CFLAGS) -c $< -o $@ $(INCLUDE)
	mkdir -p ./out
	mv $@ out
clean:
	$(RM) -r ./out $(APP) 
.PHONY: clean

$@ 表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表

https://blog.51cto.com/zhjh256/9147983

posted @ 2025-05-15 22:53  微笑的''80  阅读(2)  评论(0)    收藏  举报