編譯動態modules ko的makefile

2021-07-02 17:08:09 字數 1048 閱讀 9445

對於一些比較特殊的外設,並不是所有的產品全部有該外設,公司有時採用單獨編譯ko的方法,然後通過啟動時的指令碼,載入ko,以方便對該模組的快速除錯。

這裡主要列出makefile的基本格式:

fneq ($(kernelrelease),)
obj-m := module.o

module-y += file1.o\

file2.o

else

pwd := $(shell pwd)

arch=arm

cross_compile=arm-none-linux-gnueabi-

# 交叉編譯器的路徑,由於已經配置成環境變數

#cross_compile=arm-eabi-

kerneldir ?= ../kernel-src

#指向核心的路徑

makeargs := arch=$(arch) cross_compile=$(cross_compile)

dbg_cflags="-g -ddebug -w"

extra_cflags="-w"

.phony : debug clean

default:

$(make) $(makeargs) extra_cflags=$(extra_cflags) -c $(pwd)/../$(kerneldir) m=$(pwd) lddincdir=$(pwd)/ modules

debug:

$(make) $(makeargs) extra_cflags=$(dbg_cflags)$(extra_cflags) -c $(pwd)/../$(kerneldir) m=$(pwd) lddincdir=$(pwd)/ modules

clean:

$(make) $(makeargs) -c $(pwd)/../$(kerneldir) m=$(pwd) lddincdir=$(pwd)/ clean

endif

靜態編譯與動態編譯的區別

靜態編譯與動態編譯的區別 動態編譯的可執行檔案需要附帶乙個的動態鏈結庫,在執行時,需要呼叫其對應動態鏈結庫中的命令。所以其優點一方面是縮小了執行檔案本身的體積,另一方面是加快了編譯速度,節省了系統資源。缺點一是哪怕是很簡單的程式,只用到了鏈結庫中的一兩條命令,也需要附帶乙個相對龐大的鏈結庫 二是如果...

busybox動態編譯靜態編譯的區別

busy box選擇靜態編譯的話,命令和工具集不需要動態載入lib裡面的庫,所以在製作根檔案系統的時候就不需要往裡面新增庫檔案,省了這一步雖然方便,但是這樣的話,你做的根檔案系統就不能執行動態鏈結的程式了,因為你的開發板裡面沒有庫啊,為了能夠執行動態鏈結的程式,你把arm linux gcc裡面的庫...

靜態編譯與動態編譯的區別

靜態編譯與動態編譯的區別 動態鏈結庫 動態 有 靜態 無 動態編譯 動態編譯的可執行檔案 需要附帶乙個的動態鏈結庫 在執行時,需要呼叫其對應動態鏈結庫中的命令。優點 一方面是縮小了執行檔案本身的體積 一方面是加快了編譯速度,節省了系統資源。缺點 二是如果其他計算機上沒有安裝對應的執行庫,則用動態編譯...