我的程序使用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中生成,生成方式相同。这是一个问题,因为我需要使用标题。我试图复制标题(一些研究显示该体系结构与uinput标题无关),但后来我得到了这个错误:
sysroot\usr\include\linux\uinput.h:71:15: error: 'ABS_CNT' undeclared here (not in a function)
__s32 absmax[ABS_CNT];
^
发生了什么?为什么标题不包含在32位工具链中,为什么完全相同的头文件在复制时会出错?
答案 0 :(得分:0)
我解决了 - 它是Android NDK r16中的一个已知错误。我需要使用统一标头并在编译时使用此标志:
-D__ANDROID_API__=21