Сборка модуля ядра с предварительно скомпилированными объектными файлами дает символы неопределенные! ошибка
Я пытаюсь собрать модуль ядра для ядра 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.