【问题标题】:Error while compiling C++ kernel module with Android kernel for Nexus 7使用 Nexus 7 的 Android 内核编译 C++ 内核模块时出错
【发布时间】:2013-07-04 07:38:16
【问题描述】:

我正在为 Nexus 7 Android 内核编写 C++ 模块。之前我用 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: 错误:'void*' 不是指向对象的指针类型

radix-tree.h中的对应行与rcu_dereference()有关。

是头文件的问题,还是 makefile 的问题,还是由于修补错误?

【问题讨论】:

    标签: android kernel-module nexus-7


    【解决方案1】:

    要找出 gcc(或 g++)中使用的编译参数,您应该对 makefile 使用“make V=1”。但错误:

    错误:'void*' 不是指向对象的指针类型

    看起来更像是 C++ 错误,这是您的代码固有的(Android 内核不使用 C++)。

    这似乎可以通过重铸来解决:

    Error: ‘void*’ is not a pointer-to-object type

    C++. Error: void is not a pointer-to-object type

    等等

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2012-05-11
      • 2012-11-19
      • 1970-01-01
      • 2018-02-01
      • 2021-07-16
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多