Re: [問題] 請問2.4跟2.6的makefile寫法的不同
※ 引述《blair0 (iNeEdmOretIme)》之銘言:
: 大家好
: 目前正在移植一些driver到kernel 2.6去
: 不過Makefile的改變讓我摸不著頭緒阿~
: 以下是問題:
: 要合併數個已make好的obj file(*.o)產生一個clnkapi.a
: 只是合併而已,所以沒有clnkapi.c這類的source code
: 在2.4的環境Makefile可以寫成
: TARGET = clnkapi.a
: OBJ = ../clnkethapilnx.o ../persist.o posix_crc.o
: (FLAGS省略...)
: all: $(TARGET)
: $(TARGET): $(OBJ)
: @echo Creating $@ library
: $(AR) $(ARFLAGS) $@ $(OBJ)
: clean:
: @-rm *.o *.a
: 這樣的寫法2.6不吃,可是把TARGET改成obj-y也不行阿
: 請問我該怎麼改呢?
kernel2.4 和 kernel 2.6接受的模組格式不一樣
kernel 2.4 收 .o即可,但在 kernel 2.6 改收 .ko
因此 Makefile上的寫法就會有小小的不同
在下達 make 指令時同時產生 .o ,.ko,.mod.c ,.mod.o 這些檔案
最快的方式,就是把 Makefile 重寫,但其實也不用重頭到尾自己寫
我是直接參考O'REILLY 的 Linux 驅動程式 第三版範例中的Makefile並改成自己要用的
範例下載:http://www.oreilly.com.tw/product_linux.php?id=a184
可以參考misc-modules 資料夾底下的 Makefile 及 最外層的 Makefile
順便提醒一下,書中範例中(Makefile)的 KERNELDIR 是指向你放 kernel source的地方
如果你放的地方跟書中範例的不一樣時,要記得改成自己的,或者將 kernel source
放在跟書中範例一樣的地方
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.22.138
※ 編輯: egglet 來自: 210.58.22.138 (12/11 23:57)
※ 編輯: egglet 來自: 210.58.22.138 (12/12 00:08)
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章