1、設計一個可以被包含的頭make文件 " make.rule "
SRC_FILE += $(wildcard ${DIR_SRC}/*.cpp)
OBJ += $(patsubst %.cpp,${DIR_OBJ_SRC}/%.o, $(notdir ${SRC_FILE}))
LIB += -L. -levent -lpthread -lcurl -lhiredis
BIN_TARGET += ${DIR_BIN}/${TARGET}
CC = g++
CFLAGS += -std=c++0x -Wall -g ${DIR_INC}
#----------------------------------------------------
$(filter %.a, $(TARGET)):${OBJ}
ar -cr ${BIN_TARGET} $(OBJ)
$(filter %.so, $(TARGET)):${OBJ}
${CC} -shared -fpic -o ${BIN_TARGET} $(OBJ) ${LIB}
${BIN_TARGET}:${OBJ}
$(CC) $(CFLAGS) $(OBJ) -o $@ ${LIB}
${DIR_OBJ_SRC}/%.o:${DIR_SRC}/%.cpp
$(CC) $(CFLAGS) -c $< -o $@
#-------------------------------------------------------
.PHONY:clean
clean:
-rm -f ${DIR_OBJ_SRC}/*.o ${BIN_TARGET}
2、補全該頭文件缺失的部分, " MakeFile "
DIR_SRC = ./src
#源文件所在位置
DIR_OBJ_SRC = ./obj #生成的OBJ文件所在的位置
DIR_BIN =./lib #依賴的靜態庫目錄
TARGET = libcirus.a #.a結尾表示,將生成靜態庫;.so結尾表示生成動態庫;其他表示可執行文件
#------------------------------------------------
DIR_INC += -I ./include #頭文件包含目錄
#LIB += -L ../CirusLib/lib/ -lcirus #靜態庫依賴
#------------------------------------------------
include ../make.rule #引入make頭文件