[問題] linux 2.4 kernel unresolved symbol
我在 RH9 (2.4.20-8smp) 練習 kernel module 的寫作。
我將 module_a 中的 function "FUNC_A" 使用
EXPORT_SYMBOL(FUNC_A);
這樣是為了給另一個 module_b 來使用。
我 insmod module_a.o 之後接著 insmod module_b.o
但是系統跟我抱怨 :
module_b.o: unresolved symbol FUNC_A
修改:我如果不 EXPORT_SYMBOL 就可以使用了。
此時我使用 grep FUNC_A /proc/ksyms 得到
d08fb29c FUNC_A_R__ver_FUNC_A [module_a]
我的 FUNC_A 應該要長得類似 FUNC_A_Rsmp_xxxxxxxx
(xxxxxxxx 為 hex值)
但是實際上我的情況並不是如此。
修改:不使用 EXPORT_SYMBOL 的話會變成
d08fb29c FUNC_A [module_a]
請問是不是我有什麼地方沒有注意到?
底下是我的編譯方式
==
#/bin/sh
KINCPATH=/lib/modules/$(uname -r)/build/include
OPTS="-D__KERNEL__ -DMODULE -DEXPORT_SYMTAB"
gcc -Wall -O2 ${OPTS} -I${KINCPATH} -I. -c module_a.c -o module_a.o
gcc -Wall -O2 ${OPTS} -I${KINCPATH} -I. -c module_b.c -o module_b.o
==
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.246.16
※ 編輯: kaichan 來自: 60.250.246.16 (10/18 14:15)
推
10/22 17:28, , 1F
10/22 17:28, 1F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章