【问题标题】:linux/uinput.h missing in the 32-bit arm android ndk standalone toolchain?32 位 arm android ndk 独立工具链中缺少 linux/uinput.h?
【发布时间】:2017-12-26 15:26:08
【问题描述】:

我的程序使用 linux/uinput.h 头文件。此头文件包含在 arm64 android ndk 独立工具链中(使用此命令在 android ndk 文件夹中生成:python.exe ./make_standalone_toolchain.py --arch arm64 --install-dir arm64 --deprecated-headers --stl gnustl),但不包含在 32 位 arm one 中,生成方式相同。这是一个问题,因为我需要使用标题。我试图复制标头(一些研究表明架构与 uinput 标头无关),但随后出现此错误:

sysroot\usr\include\linux\uinput.h:71:15: error: 'ABS_CNT' undeclared here (not in a function)
   __s32 absmax[ABS_CNT];
                ^

发生了什么事?为什么头文件不包含在 32 位工具链中,为什么完全相同的头文件在复制时出错?

【问题讨论】:

    标签: linux android-ndk header-files uinput


    【解决方案1】:

    我解决了 - 这是 Android NDK r16 中的一个已知错误。我需要使用统一的头文件并在编译时使用这个标志:

    -D__ANDROID_API__=21
    

    【讨论】:

    • 明确地说,这只是 GCC 的任何问题。如果您使用 Clang,一切正常。
    猜你喜欢
    • 2014-06-27
    • 2016-07-01
    • 2013-10-09
    • 2013-07-17
    • 2012-02-15
    • 2019-02-22
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多