2017-12-26 7 views
0

내 프로그램은 linux/uinput.h 헤더를 사용합니다. 이 헤더 파일은 arm64 android ndk 독립 실행 형 툴체인 (안드로이드 ndk 폴더에서이 명령으로 생성 : python.exe ./make_standalone_toolchain.py --arch arm64 --install-dir arm64 --deprecated-headers --stl gnustl)에 포함되어 있지만 32 비트 팔에서는 보이지 않지만 같은 방법으로 생성됩니다. 헤더를 사용해야하기 때문에 이것은 문제입니다. 나는 전역 헤더 복사 시도 (몇 가지 조사를 아키텍처가 uinput 헤더 문제 doen't 것으로 나타났다),하지만이 오류가 얻을 :32 비트 암 안드로이드 ndk 독립 실행 형 툴체인에서 linux/uinput.h가 누락 되었습니까?

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

을 무슨 일을? 헤더가 32 비트 툴체인에 포함되지 않는 이유는 무엇이며, 똑같은 헤더 파일이 복사 될 때 오류가 발생하는 이유는 무엇입니까?

답변

0

Android NDK r16의 알려진 버그입니다. 통합 헤더를 사용하여 컴파일 할 때이 플래그를 사용해야했습니다.

-D__ANDROID_API__=21 
+0

분명히 GCC의 모든 문제입니다. Clang을 사용하면 모든 것이 잘 작동합니다. –

관련 문제