通用 make 文件編寫

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頭文件

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章