這個Makefile只需要修改編譯器和目標名, 以及源文件、頭文件、.o保存目錄
就可以直接使用,以後再添加源文件或頭文件,都不用再修改makefile!
共享如下:
/*************************************************************************************/
#通用makefile
#文件目錄
DEBUG_DIR=./debug
SRC_DIR=./src
INC_DIR=./inc
#INC_DIR += common/include
SRC=$(wildcard $(SRC_DIR)/*.cpp ) #源文件
OBJS=$(patsubst $(SRC_DIR)/%.cpp,$(DEBUG_DIR)/%.o,$(SRC))
#目標文件名
TARGET=test
#安裝目錄
INSTALL_PATH ?= .
#編譯器選擇
ARCH ?=
CC=$(ARCH)gcc
CPP=$(ARCH)g++
AR=$(ARCH)ar
AR=$(ARCH)ar
CFLAGS += -Wall
#添加用到的靜態庫及庫路徑
LDFLAGS += -lpthread
#LDFLAGS += ./common/arm_lib/libxx.a
#LIB_PATH += ./common/arm_lib/
CFLAGS += $(foreach dir,$(INC_DIR),-I$(dir))
LDFLAGS += $(foreach lib,$(LIB_PATH),-L$(lib))
all:$(TARGET)
$(TARGET): $(OBJS)
$(CPP) $(OBJS) -o $@ $(CFLAGS) $(LDFLAGS)
#cp $(TARGET) $(INSTALL_PATH)
$(DEBUG_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CPP) $(CFLAGS) -c $< -o $@
#@echo " "
clean:
-rm $(DEBUG_DIR)/*.o $(TARGET)