Makefile典型模板收藏

创建于 2013-06-29

迁移自个人的百度空间

---------------------------

一般应用程序的Makefile

PRGM = zztest CC = gcc CPPFLAGS = LDFLAGS = -lrt -lz CFLAGS = -Wall -ggdb3 COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -c LINKCC = $(CC) $(LDFLAGS) LIBA = libcshm.a SRCS := $(wildcard *.c) DEPS := $(patsubst %.c,%.d,$(SRCS)) OBJS := $(patsubst %.c,%.o,$(SRCS)) all:$(PRGM) $(PRGM):$(OBJS) $(DEPS)     $(LINKCC) $(OBJS) $(LIBA) -o $(PRGM) %.d:%.c     $(CC) -MM $(CPPFLAGS) $< > $@ %.o:%.c     $(COMPILE) $< -o $@ .PHONY:clean clean:     rm -f $(OBJS) $(DEPS) $(PRGM) explain:     @echo "The information represents in the program:"     @echo "Final executable name: $(PRGM)"     @echo "Source files: $(SRCS)"     @echo "Object files: $(OBJS)" depend:$(DEPS)     @echo "Dependencies are now up-to-date" -include $(DEPS)

生成动态库的Makefile

CC = gcc CFLAGS = -Wall -O2 `pkg-config --cflags glib-2.0` LIBCFLAGS = $(CFLAGS) -D_REENTRANT -fPIC LIBSRCS := $(wildcard *.c) LIBOBJS := $(patsubst %.c,%.o,$(LIBSRCS)) LIBRARY = libpustation.so.1.0.0 SONAME = libpustation.so.1 LIBNAME = libpustation.so APPLIB = applogic APPLIBSO = $(APPLIB).so APPLIBDIR = ../lib APPLIBNAME = lib$(APPLIBSO) all:$(LIBRARY)     cp $(LIBNAME) $(APPLIBDIR)/$(APPLIBNAME)     cp $(LIBNAME) $(APPLIBDIR)/$(APPLIBSO) $(LIBRARY):$(LIBOBJS)     $(CC) -shared -W1,-soname,$(SONAME) $(LIBOBJS) -o $@     ln -sf $@ $(LIBNAME)     ln -sf $@ $(SONAME) $(LIBOBJS):%.o:%.c     $(CC) $(LIBCFLAGS) -c $< -o $@ .PHONY:clean distclean clean:     rm -f $(LIBOBJS) distclean:     rm -f $(LIBOBJS) $(LIBRARY) $(SONAME) $(LIBNAME) $(APPLIBDIR)/$(APPLIBNAME) $(APPLIBDIR)/$(APPLIBSO)

生成静态库的Makefile

LIBA = libstatic.a AR = ar CC = gcc CPPFLAGS = CFLAGS = -O2 COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -c SRCS := $(wildcard *.c) OBJS := $(patsubst %.c,%.o,$(SRCS)) all:$(LIBA) $(LIBA):$(OBJS)     $(AR) cqs $(LIBA) $(OBJS) %.o:%.c     $(COMPILE) $< -o $@ .PHONY:clean distclean clean:     rm -f $(OBJS) distclean:     rm -f $(OBJS) $(LIBA)

C与C++混合编译的Makefile

PRGM = zztest LIBDIR = ../../lib APPLIB = applogic APPLIBSO = lib$(APPLIB).so CC = gcc CPPFLAGS = CFLAGS = -Wall -g `pkg-config --cflags glib-2.0` CCOMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -c CXX = g++ CXXFLAGS = -Wall -g `pkg-config --cflags glib-2.0` CXXCOMPILE = $(CXX) $(CXXFLAGS) -c LDFLAGS = `pkg-config --libs glib-2.0` -L$(LIBDIR) -l$(APPLIB) -lcppunit -ldl -lpthread LINKCXX = $(CXX) $(LDFLAGS) CSRCS = ../md5.c ../zion_load.c ../test.c COBJS := $(patsubst %.c,%.o,$(CSRCS)) CXXSRCS := $(wildcard *.cpp) CXXOBJS := $(patsubst %.cpp,%.o,$(CXXSRCS)) OBJS = $(COBJS) $(CXXOBJS) all:$(PRGM)     ln -s $(LIBDIR)/$(APPLIBSO) $(PRGM):$(OBJS)     $(LINKCXX) $(OBJS) -o $(PRGM) %.o:%.c     $(CCOMPILE) $< -o $@ %o:%.cpp     $(CXXCOMPILE) $< -o $@ .PHONY:clean clean:     rm -f $(OBJS) $(PRGM) $(APPLIBSO) core* tmp*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值