以兩個C文件爲例:函數
將本該被分別編譯成adc_device.ko和adc_driver.ko的adc_device.c、adc_driver.c編譯成一個ko文件!
spa
採用方法: 原型
第一步、改動C文件
一、去掉adc_device.c文件中module_init(xxx)、module_exit(yyy)中xxx、yyy 函數原型的keywordstatic
二、註銷adc_device.c文件中module_init(xxx)、module_exit(yyy)函數
三、在adc_driver.c文件中加入用keywordextern聲明的上述xxx、yyy函數
四、在adc_driver.c文件中module_init(mmm)、module_exit(nnn)中mmm、nnn 函數原型合適地方調用xxx、yyy函數
注意:當把多個C文件編譯成一個.ko文件時, C文件中的module_init、module_exit 會提示重定義。
故一個ko裏邊僅僅能有一個module_init和一個module_exit!it
第二步、編寫Makefile文件(關鍵部分)編譯
obj-m += adc.o
adc-objs := adc_device.o adc_driver.oclass
就這樣。將本該被分別編譯成adc_device.ko和adc_driver.ko的adc_device.c、adc_driver.cmodule
編譯成一個adc.ko文件!file