2017-12-26 10 views
0

Mein Programm verwendet den Header linux/uinput.h. Diese Header-Datei ist in der Arm64 android ndk Standalone Toolchain enthalten (generiert mit diesem Befehl im android ndk-Ordner: python.exe ./make_standalone_toolchain.py --arch arm64 --install-dir arm64 --deprecated-headers --stl gnustl), aber nicht in der 32-Bit-Arm eine, auf die gleiche Weise generiert. Dies ist ein Problem, da ich den Header verwenden muss. Ich habe versucht, den Header über kopieren (einige Untersuchungen zeigten, dass die Architektur doen't Materie mit dem uinput Header), aber dann bekomme ich diesen Fehler:linux/uinput.h fehlt in der 32-Bit-Arm android ndk Standalone Toolchain?

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

Was ist los? Warum ist die Kopfzeile nicht in der 32-Bit-Toolchain enthalten, und warum wird dieselbe Header-Datei beim Kopieren mit einem Fehler angezeigt?

Antwort

0

Ich habe es ausgearbeitet - es ist ein bekannter Fehler in der Android NDK r16. Ich brauchte einheitliche Header und verwenden Sie dieses Flag beim Kompilieren:

-D__ANDROID_API__=21 
+0

Um klar zu sein, ist es nur ein Problem mit GCC. Wenn Sie Clang verwenden, funktioniert alles gut. –

Verwandte Themen