》obj-y:定義哪些檔案被編譯進核心,obj-y中定義的.o檔案由當前目錄下的.c或.s檔案編譯生成,它們連同下級子目錄的built-in.o檔案一起被合成當前目錄下的built-in.o,這個built-in.o檔案將被它的上一層makefile使用。
例:obj-y += sy.o
》obj-m:定義哪些檔案被編譯成可載入模組,obj-m中定義的.o檔案由當前目錄下的.c或.s檔案編譯生成,他們不會被編進built-in.o,而是被編成單獨的模組。
例:obj-m += sy.o
》lib-y:定義哪些檔案被編譯成庫檔案
例:》obj-y和obj-m還可以用來指定要進入的下一層子目錄,進入後會自動呼叫子目錄的makefile
例:obj-y += sy/
obj-m += sy/
makefile編譯選項與常用變數
d 條件選擇編譯 i 標頭檔案搜尋路徑 l 連線靜態庫 l 連線庫的路徑 wall 開啟警告開關 ar 靜態庫打包命令的名字,預設值是ar。arflags 靜態庫打包的選項,預設值rv as 彙編器的名字,預設值是as。asflags 彙編器的選項,沒有定義。cc c編譯器的名字,預設值是cc。cf...
Makefile選項說明
d 條件選擇編譯 i 標頭檔案搜尋路徑 l 連線靜態庫 l 連線庫的路徑 wall 開啟警告開關 ar 靜態庫打包命令的名字,預設值是ar。arflags 靜態庫打包的選項,預設值rv as 彙編器的名字,預設值是as。asflags 彙編器的選項,沒有定義。cc c編譯器的名字,預設值是cc。cf...
編譯模組 Makefile
在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...