編譯驅動的MAKEFILE解析

2021-09-26 03:47:07 字數 645 閱讀 7293

乙個典型的編譯驅動模組的makefile檔案如下所示:

kern_dir = /root/driver/kernel

obj-m += module_test.o

all:

make -c $(kern_dir) m=`pwd` modules

.phony: clean

clean:

make -c $(kern_dir) m=`pwd` clean

解析:

(1)kern_dir,開發板的linux核心的原始碼樹目錄,要和編譯生成的映象zimage屬於同乙份**。

(2)obj-m += module_test.o,表示將我們的module_test.o編譯成乙個模組。

(3)make -c $(kern_dir) m=`pwd` modules  

(4).phony:clean   宣告clean目標是乙個偽目標,最後那一句也是一樣的解析,只不過定義的目標不一樣。

總結:模組的makefile非常簡單,本身並不能完成模組的編譯,而是通過make -c進入到核心原始碼樹下借用核心原始碼的體系來完成模組的編譯鏈結的。這個makefile本身是非常模式化的,3和4部分是永遠不用動的,只有1和2需要動。1是核心原始碼樹的目錄,你必須根據自己的編譯環境。

編譯驅動Makefile解析

ubuntu的核心原始碼樹,如果要編譯在ubuntu中安裝的模組就開啟這2個 kern ver shell uname r kern dir lib modules kern ver build 開發板的linux核心的原始碼樹目錄 kern dir root driver kernel obj m...

驅動模組編譯Makefile

驅動模組編譯makefile如下 1 使用不同的開發板核心時,一定要修改kern dir 2 kern dir中的核心要事先配置 編譯,為了能編譯核心,要先設定下列環境變數 2.1 arch,比如 export arch arm64 2.2 cross compile,比如 export cross...

Makefile編譯核心驅動模組入門 一

makefile編譯核心驅動模組入門 一 閱讀本文的前提是,讀者已經了解makefile的編寫方式,請讀者注意。本文將介紹編譯核心最簡單的makefile編譯方式,為了更直接地討論將核心驅動模組定位為最簡單的hello.ko。故在此只討論makefile的內容,不涉及核心驅動的有關內容。makefi...