2017-06-30 10 views
1

Androidプロジェクトが初めてです。私の新しい仕事のために、私はAndroidプラットフォーム用のプロジェクトを構築する必要があります。 Androidのndkを使用してAndroid用cmakelists.txtを使用してmakeファイルを生成することができました。対応するandroid.toolchain.cmakeファイルです。 makefileを実行しようとしたとき。私は直面している:Android ndk r15b - Posix_memalign()宣言されていない識別子

posix_memalign()宣言されていない識別子の問題。

ここで、cとC++コンパイラはAndroid ndkのデフォルトのツールチェーンであるclangです。私はこの問題を解決する方法を知らない。この問題を解決するのを手伝ってください。

私はWindows OSを使用しています。私はmsysメイクファイルを生成しました。

答えて

2

この問題は修正されました。 stdlibは、posix_memalign()関数に必要なヘッダファイルです。 Android ndkは、ANDROID APIレベルが16以上のposix_memalign()関数をサポートしています。 cmakeオプションで-DANDROID_NATIVE_API_LEVEL = 16を追加することで、この問題を修正できました。

パス:

ANDROID_API の#if> = 16

int型でposix_memalign(ボイド** memptr、size_tのアラインメント、size_tのサイズ) __INTRODUCED_IN(16 /sysroot/usr/include/stdlib.h );

#endifの/ * ANDROID_API> = 16 */

感謝!!!!

+0

安全な側にするには、 'minSdkVersion'を' 16'に設定してください。私はcmakeがこれを継承し、 '-DANDROID_NATIVE_API_LEVEL'をさらに設定する必要はないと信じています。 –

関連する問題