Ошибка при компиляции модуля ядра C++ с ядром Android для Nexus 7

Я пишу модуль С++ для ядра Android Nexus 7. Ранее я успешно скомпилировал этот модуль с ядром Goldfish. Но теперь после переноса необходимых изменений в ядро ​​Nexus 7 я получаю ошибку компиляции. Проблема, кажется, с заголовками. Всякий раз, когда я включаю linux/fs.h или linux/debugfs.h в модуль, возникает следующая ошибка.

/linux/radix-tree.h: в функции 'void* radix_tree_deref_slot(void**)': /android_kernel_grouper-android-tegra3-grouper-3.1-jb-fr2/include/linux/radix-tree.h:153:9 : error: 'void*' не является типом указателя на объект

Соответствующая строка в radix-tree.h как-то связана с rcu_dereference().

Проблема с заголовками, make-файлом или из-за неправильного исправления?


person user1505986    schedule 06.07.2013    source источник


Ответы (1)


Чтобы узнать параметры компиляции, используемые в gcc (или g++), вы должны использовать «make V=1» для make-файла. но ошибка:

ошибка: 'void*' не является типом указателя на объект

больше похоже на ошибку C++, которая заложена в вашем коде (ядро Android не использует C++).

Это казалось решаемым путем переделки:

Ошибка: 'void*' не является указателем на объект тип

С++. Ошибка: void не является типом указателя на объект

и т.п.

person Peter Teoh    schedule 24.07.2013