看板 LinuxDev 關於我們 聯絡資訊
我在 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)
JohnLinq:難道是...... -DMODVERSIONS 10/22 17:28