%.d: %.c $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ p-162:sed ...
這個語句分為好幾層,我們一層一層來看 .sed s, .o : , .o : ,g lt . gt 首先看加粗這一層, 表示目標參數中的.d文件, lt 將.d文件的內容交給sed處理. . 是一個臨時文件,.d文件中的內容輸入到臨時文件,再由臨時文件輸入到.d文件中 只有這樣.d文件才能有數據 .sed s, .o : , .o : ,g lt . gt 這個 gt 將 sed處理之后的內容再返 ...
2021-03-08 19:09 0 368 推薦指數:
%.d: %.c $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ p-162:sed ...
目的:編寫一個實用的makefile,能自動編譯當前目錄下所有.c/.cpp源文件,支持二者混合編譯。並且當某個.c/.cpp、.h或依賴的源文件被修改后,僅重編涉及到的源文件,未涉及的不編譯。 二要達到這個目的,用到的技術有:1-使用wildcard函數來獲得當前目錄下所有.c/.cpp文件 ...
自動依賴生成 基於make的構建環境要正確工作, 一個很重要(也很煩人)的任務是, 在makefile中正確列 舉依賴. 這個文檔將介紹了一個非常有用的讓make自身來創建和維護這些依賴的方法. 文章來源 所有的make程序都需要知道, 某個特定的target依賴的文件有哪些, 以便確認 ...
手工編寫依賴關系不僅工作量大而且極易出現遺漏,更新也很難及時,修改源或頭文件后makefile可能忘記修改。為了解決這個問題,可以用gcc的-M選項自動生成目標文件和源文件的依賴關系。-M選項會把包含的系統頭文件以及其所包含的其他系統頭文件也找出來了,如果我們不需要輸出系統頭文件的依賴關系時 ...
轉載於: http://blog.sina.com.cn/s/blog_87c063060101ky45.html 1.關於GCC怎么樣自動生成‘依賴’.網上有很多版本,有使用“正則法則”實現的,也有其他方法實現的. 筆者通過比較,覺得最簡單的還是Linux內核里面的規則最簡單 ...
為什么需要自動生成頭文件依賴? 編譯單個源文件時,需要獲取文件中包含的頭文件的信息,但是一般的Makefile不會在規則中明確寫明文件依賴的頭文件,所以單獨修改頭文件后,不會導致包含頭文件的源文件重新編譯。如果每次手動的添加頭文件依賴,又會非常的繁瑣,所以需要一種自動生成依賴的方法 ...
最近在看一本書《Windows游戲編程大師技巧》 (Tricks of Windows Game Programming Gurus). 第一章給出了一個打磚塊小游戲的示例程序. 包括三個文件: bl ...