一同事突然对画格子(UI)有了兴趣,为了帮助其早日画好格子,特意为其写了几个函数。单单写几个函数没无多大的难度,刚好自已最近在学写MAKEFILE,自已从来没有单独为某一个模块写过MAKEFILE,于是决定以静态库的形式提供我所写的函数给同事,在此过程中,个人学习了完成一个静态库全过程,同时对库函数进行了自测(编写测试代码和MAKEFILE)。
下面是制作静态库的MAKEFILE
CROSS_COMPILER:=arm-hismall-linux-
CC:=$(CROSS_COMPILER)g++
GCC:=$(CROSS_COMPILER)gcc
AR:=$(CROSS_COMPILER)ar
LIB_NAME:=./release/libgetweek.a
PROJECT_ROOT:=$(shell pwd)/src
INCLUDE_DIR+=-I$(PROJECT_ROOT)/include
#CFLAGS+=-Wall -Werror
CFLAGS+=$(INCLUDE_DIR)
all:$(LIB_NAME)
$(LIB_NAME):getweek.o
$(AR) -rsv -o $(LIB_NAME) getweek.o
getweek.o:$(PROJECT_ROOT)/getweek.cpp
$(CC) $(CFLAGS) -c $(PROJECT_ROOT)/getweek.cpp
clean:
rm -f $(LIB_NAME)
rm -f *.o
----------------------------------------------------------------------------------
| 单元测试函数的MAKEFILE |
----------------------------------------------------------------------------------
CROSS_COMPILER:=arm-hismall-linux-
CC:=$(CROSS_COMPILER)g++
GCC:=$(CROSS_COMPILER)gcc
AR:=$(CROSS_COMPILER)ar
EXE_NAME:=./getweek_test
PROJECT_ROOT:=./
INCLUDE_DIR+=-I$(PROJECT_ROOT)/../include
STATIC_LIB+=../../release/libgetweek.a
CFLAGS+=-Wall -Werror
CFLAGS+=$(INCLUDE_DIR)
LDFLAGS+=$(STATIC_LIB)
all:$(EXE_NAME)
$(EXE_NAME): getweek_test.o
$(CC) $(CFLAGS) -o $(EXE_NAME) getweek_test.o $(LDFLAGS)
@echo "ok"
getweek_test.o:getweek_test.cpp
$(CC) $(CFLAGS) -c $(PROJECT_ROOT)/getweek_test.cpp $(LDFLAGS)
clean:
rm -f $(EXE_NAME)
rm -f *.o