編譯核心模組時,乙個原始檔的makefile模板到處都是:
obj-m := module.o
kerneldir := /lib/modules/$(shell uname -r)/build
pwd := $(shell pwd)
default:
$(make) -c $(kerneldir) m=$(pwd) modules
clean:
rm -f *.o *.ko *.mod.c modules.* module.*
因為我不是核心工程師,所以偶爾寫個核心模組,乙個原始檔也就夠了。近日有了多檔案的需求,嘗試了多次,才整理出正確的多檔案下核心模組的makefile模板。
obj-m := module.o
module-objs += file1.o
module-objs += file2.o
module-objs += file3.o
kerneldir := /lib/modules/$(shell uname -r)/build
pwd := $(shell pwd)
default:
$(make) -c $(kerneldir) m=$(pwd) modules
clean:
rm -f *.o *.ko *.mod.c modules.* module.*
注意,file1,file2,file3不能和module重名哦。
編譯選項定義:
-c 到指定目錄下讀取makefile
m 執行當前目錄下的makefile
Linux裝置驅動初探 多原始檔Makefile
首先介紹一下 init這個標誌在驅動原始檔中的作用吧。核心中帶 的函式 核心api函式具有這種名稱的,通常都是一些介面的底層函式,應該謹慎使用。實質上,這裡的雙下劃線就是要告訴程式設計師 謹慎呼叫,否則後果自負。以 init為例,init表明該函式僅在初始化期間使用。在模組被裝載之後,模組裝載器就會...
CMake入門 多目錄多原始檔簡單布局
main.cc的內容 include include include math mathfunctions.h int main int argc,char ar double base atof ar 1 int exponent atoi ar 2 double result power bas...
gcc 多原始檔的編譯方法
如果有多個原始檔,基本上有兩種編譯方法 假設有兩個原始檔為test.c和testfun.c 1.多個檔案一起編譯 用法 gcc testfun.c test.c o test 作用 將testfun.c和test.c分別編譯後鏈結成test可執行檔案。2.分別編譯各個原始檔,之後對編譯後輸出的目標檔...