【发布时间】:2014-06-03 01:40:30
【问题描述】:
如果我构建一个依赖于其他模块的模块,我会收到以下警告:
'函数或符号?' [源目录/my_module.ko] 未定义!
警告是什么意思? 该警告没有告诉我它是在标头中还是在某些模块源中定义的函数。我想这意味着缺少一些模块符号定义。那么我是否必须重建我的模块所依赖的所有模块?
或者我可以以某种方式在我的模块源代码或 makefile 中插入显式符号 - 例如,如果我包含 *.c 源文件,其中在我的模块源代码中定义了缺少的符号?可以这么说 - 构建我的模块而不需要构建不在我的源目录中的额外目标文件,我的模块依赖于它。
提前致谢!
【问题讨论】:
-
只是为了澄清;您有多个内核模块,并且您试图跨这些模块引用符号?
-
是的。这些符号(函数)来自 src 内核目录中的一个模块。这个内核模块已经在运行 - 但我不知道这个符号是否已加载到内核(不存在于 /proc/kallsyms 中)。我需要他们来构建我的模块。
-
实际上,我构建的模块的源代码已经过时了。我有两个 /src 目录,其中一个包含旧的内核源代码。我的源路径似乎指向那里。
标签: c linux gcc makefile kernel-module