MASTG-TOOL-0005 Android NDK

Android NDK はネイティブコンパイラとツールチェーンのビルド済みバージョンを含みます。GCC と Clang のコンパイラはどちらも従来からサポートされてきましたが、GCC のアクティブサポートは NDK バージョン 14 で終了しました。デバイスアーキテクチャとホスト OS によって適切なバージョンが決まります。ビルド済みツールチェーンは NDK の toolchains ディレクトリにあり、アーキテクチャごとに一つのサブディレクトリがあります。

アーキテクチャ
ツールチェーン

ARM-based

arm-linux-androideabi-<gcc-version>

x86-based

x86-<gcc-version>

MIPS-based

mipsel-linux-android-<gcc-version>

ARM64-based

aarch64-linux-android-<gcc-version>

X86-64-based

x86_64-<gcc-version>

MIPS64-based

mips64el-linux-android-<gcc-version>

適切なアーキテクチャを選択するだけでなく、ターゲットとするネイティブ API レベルに適した sysroot を指定する必要があります。sysroot はターゲットのシステムヘッダとライブラリを含むディレクトリです。ネイティブ API は Android API レベルによって異なります。Android API レベルごとに利用可能な sysroot ディレクトリは $NDK/platforms/ にあります。各 API レベルディレクトリにはさまざまな CPU やアーキテクチャを含みます。

ビルドシステムをセットアップする方法の一つは、コンパイラパスと必要なフラグを環境変数としてエクスポートすることです。しかし、作業を簡単にするために、NDK では、必要な設定を組み込んだ一時的なツールチェーンである、いわゆるスタンドアロンツールチェーンを作成できます。

スタンドアロンツールチェーンをセットアップするには、NDK の最新安定版 をダウンロードします。ZIP ファイルを展開して、NDK ルートディレクトリに移動し、以下のコマンドを実行します。

./build/tools/make_standalone_toolchain.py --arch arm --api 24 --install-dir /tmp/android-7-toolchain

これは Android 7.0 (API レベル 24) 用のスタンドアロンツールチェーンを /tmp/android-7-toolchain ディレクトリに作成します。利便性のために、ツールチェーンを指す環境変数をエクスポートできます (例ではこれを使用します)。以下のコマンドを実行するか、これを .bash_profile やその他のスタートアップスクリプトに追加します。

export TOOLCHAIN=/tmp/android-7-toolchain

Last updated

Was this helpful?