我的项目文件层次是:项目名称/include、output、src
src/admin、stu、tch、common
最外层的Makefile:
DEBUG = y
MYDEBUG = DEBUG
ifeq ($(DEBUG),y)
DEBFLAGS = -O -g -D$(MYDEBUG)
else
DEBFLAGS =
endif
PRJ_HOME := $(shell pwd)
SOURCES := $(wildcard *.c)
OBJECTS := ${SOURCES:%.c=%.o}
INCPATH := -I$(PRJ_HOME)/include -I./
export CFLAGS += $(INCPATH) $(DEBFLAGS)
export CC = gcc
export OUTPUTDIR = $(PRJ_HOME)/output
PROGRAM = system_stu
VPATH = ${OUTPUTDIR}
.PHONY : all
all : ${PROGRAM}
${PROGRAM} : ${OBJECTS} oadmin ocommon ostu otch
$(CC) -o $@ ${OUTPUTDIR}/*.o $(CFLAGS)
%.o:%.c
$(CC) -o ${OUTPUTDIR}/$@ -c $< $(CFLAGS)
oadmin :
@$(MAKE) -C src/admin/
ocommon :
@$(MAKE) -C src/common/
ostu :
@$(MAKE) -C src/stu/
otch :
@$(MAKE) -C src/tch/
.PHONY : clean
clean :
$(RM) ${OUTPUTDIR}/*.o *.o ${PROGRAM}
子目录的Makefile:
SOURCES := $(wildcard *.c)
OBJECTS := ${SOURCES:%.c=%.o}
VPATH = $(OUTPUTDIR)
all : ${OBJECTS}
%.o:%.c
$(CC) -o ${OUTPUTDIR}/$@ -c $< $(CFLAGS)
clean :
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2013-05-21 C/C++时间函数使用方法