2017-12-26 13 views
0

私のプログラムはlinux/uinput.hヘッダを使用しています。このヘッダファイルは、アンドロイドの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を使用すると、すべて正常に動作します。 –

関連する問題