標籤:not clu test col color run client nbsp 結果
Makefile的C++的一個模板,可用於根據不同源檔案,產生多個可執行檔 。
CC = g++DIR_INC = ./includeDIR_SRC = ./srcDIR_OBJ = ./objDIR_BIN = ./bin# SRC = $(wildcard ${DIR_SRC}/*.cpp )SRC_Server = $(wildcard ${DIR_SRC}/server.cpp ${DIR_SRC}/test1.cpp)SRC_Client = $(wildcard ${DIR_SRC}/client.cpp ${DIR_SRC}/test1.cpp)OBJ_server = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC_Server} ))OBJ_client = $(patsubst %.cpp,${DIR_OBJ}/%.o,$(notdir ${SRC_Client} ))TARGET_Server = tcp_serverTARGET_Client = tcp_clientBIN_TARGET_Server = ${DIR_BIN}/${TARGET_Server} BIN_TARGET_Client = ${DIR_BIN}/${TARGET_Client}TARGET = ${DIR_BIN}/${TARGET_Server} ${DIR_BIN}/${TARGET_Client} all: $(TARGET) CFLAGS = -g -O2 -Wall -I${DIR_INC}${DIR_OBJ}/%.o : ${SRC_Server} ${SRC_Client} @echo 開始編譯檔案 $(CC) ${CFLAGS} -c $? -mv *.o $(DIR_OBJ)/ @echo 編譯檔案完成${BIN_TARGET_Client} : ${OBJ_client}@echo 連結組建檔案目標檔案${CC} ${CFLAGS} ${OBJ_client} -o [email protected] ${BIN_TARGET_Server} : ${OBJ_server} @echo 連結組建檔案目標檔案 ${CC} ${CFLAGS} ${OBJ_server} -o [email protected] .PHONY : clean runclean: @echo 刪除編譯結果檔案 -rm -f ${DIR_OBJ}/*.o ${BIN_TARGET_Server} ${BIN_TARGET_Client}run: @echo 執行檔案 ${BIN_TARGET}
Makefile模板(C++)