Сборка модуля ядра с предварительно скомпилированными объектными файлами дает символы неопределенные! ошибка

Я пытаюсь собрать модуль ядра для ядра Android-386 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 ответ

Каждый модуль ядра должен быть скомпилирован с тем же ядром. Это означает, что если у вас есть какие-либо предварительно скомпилированные объектные файлы, ядро ​​выдает ошибку (из-за несоответствия версий)

а также несколько символов, определенных в готовом объектном файле, могут отсутствовать в текущей версии ядра (3.10).

Это потому, что после того, как ядро ​​скомпилировано, оно создаст системную карту, на которую ссылаются все адреса функций.

И каждое ядро ​​имеет свой собственный файл System.map.

Другие вопросы по тегам