日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux Makefile编写的整理

發布時間:2025/3/21 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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编写的整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。