再發一個通用的Makefile

來源:互聯網
上載者:User

這個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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.