makefile 模板
2016-03-13 23:15
423 查看
生成可执行程序
view plaincopy to clipboardprint?
生成动态库的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
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*
相关文章推荐
- 数据结构(2):链表
- java多线程
- uboot环境变量(设置bootargs向linux内核传递正确的参数)
- 数据库三大范式
- RTB竞价中的cookie mapping技术
- 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
- 从产品设计的角度看“网易宝/网易理财/网易小贷”
- 数据库三大范式
- 倒计时效果
- mac下mysql 1045 (28000): Access denied for user 'root'@'localhost' (using password:
- mysql配置
- 机器学习实战--adaboost
- NSString常见用法总结
- Java向上转型和向下转型
- 索引器方法
- Cpufreq framework 分析-1
- [leetcode] 281. Zigzag Iterator 解题报告
- 嵌入式 uboot、fs、kernel制作和烧录简记-hi3518c
- Objective-C的基础语法总结
- Swift入门-Day 1