使用预编译的目标文件构建内核模块会使符号未定义!错误

时间:2013-08-23 03:47:39

标签: linux-kernel android-x86

我正在尝试为android-x86 3.10内核构建一个内核模块,其中包含一个预编译的目标文件,如下所示,

tmp-objs:= sample1.o prebuilt.o obj-m + = tmp.o

sample1.o有一个sample1.c但prebuilt.o是预编译的目标文件。

在构建android-x86 3.10内核映像时,内核构建未定义! prebuilt.o中存在的符号的错误。

请帮助解决此构建错误。

1 个答案:

答案 0 :(得分:1)

每个内核模块都应该针对同一个内核进行编译。这意味着如果您有任何预编译的目标文件,内核会抛出错误(由于版本不匹配)

,并且在预构建的目标文件中定义的几个符号可能不在当前内核版本(3.10)中。

这是因为在编译内核之后,它将创建系统映射,所有函数地址都将被引用。

每个内核都有自己的System.map文件。