linux Makefile编写的整理
生活随笔
收集整理的這篇文章主要介紹了
linux Makefile编写的整理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近將Makefile的編寫進行了整理和提煉了一下,大致分為五個步驟:
編譯總共為五個部分
?1.設置編譯環境 set?compile?environment
?2.獲取要編譯的源文件,以及把源文件轉換為目標文件?(?源文件和目標文件)?source?to?obj
?3.將文件編譯為目標文件 OBJing
?4.將目標文件鏈接成可執行文件或(打包為)動態庫,或靜態庫??linking
?5.其他方面 clean等
下面給出一個簡單的makefile模板(實際項目中可依照此模板進行擴展):
來看看這個模板:
1 ## 設置編譯環境 2 CC:=gcc 3 CXX:=g++ 4 BIN:= libdemo.so 5 FLAGS ??? ??? ??? := -Wall -g -fPIC 6 CXX_FLAGS ??? := -Wall -g -pipe -fPIC -shared -export-dynamic 7 LIB ??? ??? ????????? := -L../common/test/ -ltest 8 INCLUDE_PATH??? := -I/common/ -I../common/test/? 9 10 ## 獲取要編譯的源文件,以及把源文件轉換為目標文件 11 SOURCES??? ??? ??? := $(wildcard *.c *.cpp) 12 OBJS ??? ??? ??? := $(patsubst %.c, %.o, $(patsubst %.cpp,%.o,$(SOURCES)) ) 13 14 ## 將源文件編譯為目標文件 15 %.o: %.c 16 ??? $(CC) $(FLAGS) -c $< -o $@ $(INCLUDE_PATH) 17 18 %.o:%.cpp 19 ??? $(CXX) $(FLAGS) -c $< -o $@ $(INCLUDE_PATH) 20 21 ## 將目標文件鏈接成可執行文件或動態庫,或靜態庫 22 $(BIN) : $(OBJS)? 23 ??? $(CXX) $(CXX_FLAGS) $(OBJS) $(INCLUDE_PATH) $(LIB) -o $(BIN) 24 ??? chmod a+x $(BIN) 25 26 ## 其他 27 clean: 28 ??? rm -rf *.o $(BIN) 29 ? ???? 30 install: 31 ??? cp $(BIN) ../common/bin?
當然,makefile的入門還是推薦陳皓老師的<<跟我一起寫makefile>>,希望對大家有所幫助.
?
轉載于:https://www.cnblogs.com/panada/p/4941272.html
總結
以上是生活随笔為你收集整理的linux Makefile编写的整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web 全栈 学习 2 一个好的页面是如
- 下一篇: Android之ProgressBar读