您的位置:首页 > 其它

makefile 模板

2016-03-13 23:15 423 查看
生成可执行程序

view plaincopy to clipboardprint?

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

view plaincopy to clipboardprint?

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

view plaincopy to clipboardprint?

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 := $(wildcard *.)
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*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: