天天看點

Makefile通用模闆(linux下c和c++工程)

#設定編譯器和編譯參數
CC=g++ -std=c++11 -g -Wall

#設定需要包含的頭檔案目錄
CFLAGS = -I./inc

#設定需要包含的動态庫和靜态庫目錄
LFLAGS = -L/usr/local/lib

#指定要連結的動态庫或靜态庫
LDEXEFLAGS = -ljemalloc -lcurl

#設定存放.o檔案的目錄
OBJDIR = obj

#設定存放.c和.cpp檔案的目錄
SRCDIR += src

ALL_SRC += $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.cpp))
ALL_OBJ += $(patsubst src/%.cpp, $(OBJDIR)/%.o, $(ALL_SRC))

#設定可執行檔案名
all:server

server: $(ALL_OBJ)
	$(CC) $(LFLAGS) $(ALL_OBJ) $(LDEXEFLAGS) -o $@

$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
	$(CC) $(CFLAGS) $(ALL_INCLUDE) -c $< -o $@

#make clean
clean:
	rm -f ./obj/*.o server