make file

本文介绍了一个在Linux环境下广泛使用的makefile文件,适用于不同编程需求,包括调试、测试和发布。通过定制化的编译选项和依赖管理,提高了开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux下编程许久,没用特别的IDE,用了所谓的神器Emacs。整理了一个万用的make file文件。希望能大家有所帮助

#Digital UNIX 4.0 compilantion flag;
SRCDIR = src
INCDIR += -I./include 
OBJDIR = obj
BINDIR = bin


#CXX = arm-vfp-linux-gnu-g++
#CXX = arm-linux-g++
CXX = g++
CXXFLAGSDebug = -g3 -Wall $(INCDIR) #-I/opt/nxp/gcc-4.3.2-glibc-2.7/include
CXXFLAGSRelease = -library -w -O2 $(INCDIR)
CXXFLAGS = -g -Wall -O2 $(INCDIR) 
LDFLAGS += -lpthread -ltinyxml
RTFLAGS = -lrt
#RTFLAGS = 
PREDEFINE +=


ifeq ($(MAKECMDGOALS), release)
CXXFLAGS = $(CXXFLAGSRelease)
endif


ifeq ($(MAKECMDGOALS), debug)
PREDEFINE += -D __DEBUG 
CXXFLAGS = $(CXXFLAGSDebug)
endif


ifeq ($(MAKECMDGOALS), test)
PREDEFINE += -D __DEBUG -D __TEST
CXXFLAGS = $(CXXFLAGSDebug)
LDFLAGS += -lcppunit
endif


ifeq ($(MAKECMDGOALS), test)
PROGS = Testxxx
else
PROGS = xxx
endif


ABS_SOURCES = $(wildcard $(SRCDIR)/*.cpp)
SOURCES = $(subst $(SRCDIR)/,, $(ABS_SOURCES))
OBJS += $(subst .cpp,.o, $(SOURCES))


ifeq ($(MAKECMDGOALS), test)
INCDIR += -I./testInclude
vpath %.cpp $(SRCDIR) testSrc
vpath %.h $(INCDIR) testInclude
TestABS_SOURCES = $(wildcard testSrc/*.cpp)
TestSOURCES = $(subst testSrc/,, $(TestABS_SOURCES))
OBJS += $(subst .cpp,.o, $(TestSOURCES))
else
vpath %.cpp $(SRCDIR)
endif


.PHONY: all debug test release
all : $(PROGS) 
@echo "*********************Good boy! All have been done.******************"
@echo ""
debug : $(PROGS)
@echo "*********************Good boy! Debug make file is OK.******************"
@echo ""
test : $(PROGS)
@echo "*********************Good boy! Test make file is OK.******************"
@echo ""
release : $(PROGS)
@echo "**********************Fine! The release make is OK!***************************"
@echo ""


$(PROGS) :: $(OBJS)
$(CXX) $(addprefix $(OBJDIR)/,$^) $(RTFLAGS) $(LDFLAGS) $(PREDEFINE) -o $(BINDIR)/$@


%.o::%.cpp
$(CXX) -c $(CXXFLAGS) $< $(PREDEFINE) -o $(OBJDIR)/$@


.PHONY: clean
clean:
-$(RM) $(BINDIR)/* $(OBJDIR)/*.o














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值