作者kaichan (呈呈)
看板LinuxDev
标题[问题] linux 2.4 kernel unresolved symbol
时间Thu Oct 18 13:35:41 2007
我在 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)
1F:推 JohnLinq:难道是...... -DMODVERSIONS 10/22 17:28