C/C++ makefile 支持多目录、多文件批量化模版

最近因工作需要,要尝试徒手撸一份makefile文件,这份模版支持批量化,也不针对某一个C/CPP文件指定规则:

# Makefile for building: GuiDemo 
# by MT 2023-12-12 v1.0
# http://blog.csdn.net/wangningyu
CC            = gcc
CFLAGS        = -std=c11 -Wall
TARGET        = ./bin/GuiDemo

SRC_FLASH     = flash
SRC_GUI       = gui/Gui
SRC_MISC      = gui/Misc
SRC_USER      = gui/User
SRC_FONT      = gui/User/Fonts/

INC_ROOT      = .
INC_DIR       = gui/
INC_FLASH     = flash/
INC_GUI       = gui/Gui/
INC_MISC      = gui/Misc/
INC_USER      = gui/User/
INC_FONT      = gui/User/Fonts/
INC_SDL2      = SDL2/32/include/SDL2/
INCLUDE_DIR   = -I$(INC_ROOT) -I$(INC_DIR) -I$(INC_FLASH) -I$(INC_GUI) -I$(INC_MISC) -I$(INC_USER) -I$(INC_FONT) -I$(INC_SDL2)

LIB_DIR       = SDL2/32/lib/
LIBS          = -lSDL2 -lSDL2main

#获取所有的.c文件
SOURCES       = $(wildcard *.c $(SRC_FLASH)/*.c $(SRC_GUI)/*.c $(SRC_MISC)/*.c $(SRC_USER)/*.c $(SRC_FONT)/*.c)

#将.c文件替换成.o文件
OBJECTS       = $(SOURCES:.c=.o)

#链接规则
$(TARGET): $(OBJECTS)
	$(CC) $(CFLAGS) -o $@ $^ -L$(LIB_DIR) $(LIBS)

#编译规则
%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $< $(INCLUDE_DIR)

#.PHONY: clean

clean:
	@echo "Cleaning..."
	del /f /s /q .\*.o

支持MinGW,需要的直接拷贝走,免得以后再去写了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪宁宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值