GCC通用makefile

## 一個可以編譯多文件的簡單makefile

## 友情提示:注意不要使用空格,要用TAB鍵代替,否則make命令執行時會出現錯誤

TARGET:=./hello

INCDIR:=../include

##SRCDIR:=src


SRCDIR:=./

OBJDIR:=./obj

$(shell if !([ -d $(OBJDIR) ]); then mkdir $(OBJDIR); fi)

##LIBDIR:=lib

##$(shell if !([ -d $(LIBDIR) ]); then mkdir $(LIBDIR); fi)

CC  :=g++

FLAGS:=-g -Wall -W -I$(INCDIR) -D_DEBUG

##看看怎樣包含自己編譯的靜態庫的 首先指定自己編譯的靜態庫的位置:   -L/home/xiaoheqing/ztx/lib
## 然後鏈接該靜態庫 -lztx
## 注意:生成的靜態庫一定要是 libxxx.a這種形式,如果鏈接的是 -lztx, 則生成的靜態庫名字應該爲:libztx.a 

##LIBS = -L/home/andy/share/libmad_install/lib -lmad  -L/home/andy/share/alsalib/lib -lasound

LIBS :=-lpthread -L../lib -lvoip_static

SRCS=$(wildcard  ../common/*.cpp  ./*.c  ./*.cc  ./*.cpp )

OBJ=$(SRCS:.cxx=.o)

$(TARGET):$(OBJ)
$(CC) -o $@ $^ $(FLAGS) $(LIBS)     ##特別注意:此行前面需要加上TAB,不能是空格 !!!

##$(OBJDIR)/%.o:./common/%.cpp 

##      $(CC) -c $< -o $@ $(FLAGS)

##$(OBJDIR)/%.o: ./authsvr/%.cpp

##      $(CC) -c $< -o $@ $(FLAGS)

##$(shell cp $(TARGET) ./bin/ )

##$(shell if ([ -f "$(TARGET)" ]); then cp $(TARGET) ./bin/;  fi)

.PHONY: clean

clean:
rm -f ./*.o  $(TARGET)      ## 特別注意:此行前面需要加上TAB ,不能是空格 !!!
發佈了66 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章