0

我的程序使用 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 位工具链中,为什么完全相同的头文件在复制时会出错?

4

1 回答 1

0

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

-D__ANDROID_API__=21
于 2018-01-01T04:09:28.783 回答