内容
Android* NDK ビルドシステムでインテル® C++ コンパイラーのツールチェーンを有効にする
インテル® C++ コンパイラー Android* 向けを使用してサンプル・アプリケーションをビルドする
スタンドアロン・コンパイラーとしてインテル® C++ コンパイラー・ツールチェーンを使用する
インテル® C++ コンパイラー Android* 向けを Eclipse* で使用する
インテル® C++ コンパイラー Android* 向けは、IA-32 アーキテクチャー・ベースの Android* オペレーティング・システム向けに C および C++ アプリケーションを開発するソフトウェア開発者のためのクロス・コンパイラーです。このコンパイラーは、Android* NDK のライブラリーとツールに依存しており、インテル® C++ コンパイラー Android* 向けを利用するには、Android* NDK が必要です。Android* NDK は、http://developer.android.com/sdk/ndk/index.html から入手できます (NDK の最新バージョン r9b が提供されています)。
インテル® C++ コンパイラー Android* 向けは、インテル® C++ コンパイラー 14.0 Linux* 版をベースにしていますが、このバージョンでサポートされるすべての機能が提供されるわけではありません。また、日本語版も提供されません。インテル® C++ コンパイラー Android* 向けでサポートされない機能については、リリースノートをご覧ください。
このドキュメントでは、インテル® C++ コンパイラー Android* 向け OS X* 版固有の導入ガイドを提供し、インテル® C++ コンパイラー 14.0 で提供されるユーザー・リファレンス・ガイドの導入部の代替えとなります。
Android* 上で動作する IA-32 システム用アプリケーションを開発するには、次の 2 つの方法があります。
以降の節では、上記の両方の手法に対する一般的なガイドラインを示します。
インテル® C++ コンパイラー Android* 向けのインストール後、インストール・プログラムは、インテル® コンパイラーを Android* NDK ビルドシステムに統合するために必要なコンポーネントをインストールして自動的に統合を行います。
インテル® C++ コンパイラーを使用してサンプル・アプリケーションをビルドするには、次のどちらかの手順に従います。
$ $NDK_DIR/ndk-build V=1 -B NDK_TOOLCHAIN=x86-icc APP_ABI=x86
オプションの意味:
V=1 詳細な出力を有効にする (オプション)
-B すべてをリビルドする (オプション)
APP_ABI ターゲット・アーキテクチャーを指定する
次の行を Applicatoin.mk に追加します。
APP_ABI:=x86
NDK_TOOLCHAIN:=x86-icc
$ $NDK_DIR/ndk-build V=1 –B
2 つの方法は類似していますが、重要なことはインテル® C++ コンパイラー Android* 向け (ICC) を使用する場合、APP_ABI と NDK_TOOLCHAIN を設定する必要があることです。いくつかの方法があります。
NDK_TOOLCHAIN := x86-icc
もしくは
NDK_TOOLCHAIN_VERSION := icc
インテル® C++ コンパイラー Android* 向けの複数のバージョンがインストールされている場合、次のように完全なコンパイラー・パッケージのバージョンを指定することができます。
NDK_TOOLCHAIN=x86-icc14.0.0.011
[icc-install-dir] は、コンパイラーのインストール先です。デフォルトは、/opt/intel/cc_android_14.0.0.nnn/ で、nnn はパッケージのビルド番号を示します。
デフォルトのインストール先を使用している場合、次のコマンドを実行します。
$ source /opt/intel/cc_android_14.0.0.nnn/bin/compilervars.sh
注意: ANDROID_SYSROOT と ANDROID_GNU_X86_TOOLCHAIN 環境変数の設定を要求するエラーが発生した場合、サポートされない NDK バージョンを利用している可能性があります。手動で環境変数を設定することができます。
Android* NDK の 32 ビット・バージョンをインストールしている場合、次のように環境変数を設定します。
$ export NDK_DIR=[Android NDK-install-directory]
$ export ANDROID_SYSROOT=$NDK_DIR/platforms/android-18/arch-x86
$ export ANDROID_GNU_X86_TOOLCHAIN=$NDK_DIR/toolchains/x86-4.6/prebuilt/darwin-x86
Android* NDK の 64 ビット・バージョンをインストールしている場合、次のように環境変数を設定します。
$ export NDK_DIR=[Android NDK-install-directory]
$ export ANDROID_SYSROOT=$NDK_DIR/platforms/android-18/arch-x86
$ export ANDROID_GNU_X86_TOOLCHAIN=$NDK_DIR/toolchains/x86-4.6/prebuilt/darwin-x86_64
C のソースをコンパイルするには “icc” を、C++ のソースをコンパイルするには “icpc” を使用します。
$ cd $NDK_DIR/samples/hello-jni/jni
$ icc -c hello-jni.c
$ icc –shared –o libhello-jni.so hello-jni.o
NDK は、デフォルトでデバッグ用アプリケーションをビルドするように構成されており、すべての最適化は OFF になっています。コードを配布する準備ができたら、パフォーマンスを向上するようにコンパイルする必要があります。
APP_OPTIM=release
APP_CFLAGS:=-xATOM_SSSE3
APP_CFLAGS:=-xATOM_SSSE3 –O3
プロシージャー間の最適化 (IPO) を有効にするには、以下のようにします。
APP_CFLAGS:=-xATOM_SSSE3 –O3 –ipo
$ ndk-build V=1 -B NDK_TOOLCHAIN=x86-icc APP_ABI=x86 APP_OPTIM=release APP_CFLAGS=”-xATOM_SSSE3 –O3 -ipo”
最適化オプションの詳細については、パッケージに含まれる『インテル® C++ コンパイラー XE 14.0 のユーザー・リファレンス・ガイド』の「高レベルの最適化 (HLO)」と「プロシージャー間の最適化 (IPO)」の節を参照してください。
Eclipse* でインテル® C++ コンパイラーを使用するには、次の手順で Eclipse* と Eclipse* プロジェクトを設定してください。
注意: 事前に Android Developer Toolkit (ADT) がインストールされていなければいけません。
[Eclipse] > [ADT] > [Preferences] > [Android] > [NDK] > [set path to the NDK]
a) Eclipse* のメニューから [File] > [New] > [Project …] を選択します。
b) [Android Project from Existing Code] を選択して [Next] をクリックします。
c) “[ndk-dir]\samples\hello-jni” ディレクトリーを参照して、[Copy projects into workspace] のチェックボックスをオンにし、[Finish] ボタンをクリックします。
a) “Native Support” をプロジェクトに追加するには、[Project Explorer] ウィンドウのプロジェクト名を右クリックして、[Android Tools] > [Add native Support …] を選択します。
b) ライブラリー名を問い合わせるダイアログが開きます。以下のようにライブラリー名に “hello-jni” を設定します。
a) プロジェクト名を右クリックして、[Properties] ウィンドウを開き、[Properties] を選択します。[C/C++ Build] > [Environment] をクリックし、3 つの環境変数を追加します。
ANDROID_GNU_X86_TOOLCHAIN="${NDK}/toolchains/x86-4.6/prebuilt/linux-x86_64"
32 ビット Android* NDK には、以下を追加します。
ANDROID_GNU_X86_TOOLCHAIN=${NDK}/toolchains/x86-4.6/prebuilt/linux-x86
APP_ABI:=x86
NDK_TOOLCHAIN:=x86-icc
プロジェクト名を右クリックして、[Build Project] を選択します。
詳細については、「Android* アプリケーション向けにインテル® C++ コンパイラーの高度な機能を利用する」の記事を参照してください。
製品ドキュメントに記載されていない、製品のインストール、新機能と変更点、そして既知の問題に関しては、リリースノートおよびインストール・ガイドを参照してください。
このパッケージに含まれる、『インテル® C++ コンパイラー14.0 ユーザー・リファレンス・ガイド』も参照してください。
最新の情報については、iSUS のインテル® C++ コンパイラー Android* 向けのページをご覧ください。
$NDK\docs 配下にある NDK ドキュメントを参照してください。
インテル® C++ コンパイラー Android* 向けのご購入のお問い合わせは、エクセルソフト株式会社までお願いいたします。
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® SSE2、インテル® SSE3、インテル® SSSE3 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 |
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスも許諾するものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商適格性、あらゆる特許権、著作権、その他知的財産権の非侵害性への保証を含む)に関してもいかなる責任も負いません。
インテルによる書面での合意がない限り、インテル製品は、その欠陥や故障によって人身事故が発生するようなアプリケーションでの使用を想定した設計は行われていません。
インテル製品は、予告なく仕様や説明が変更される場合があります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。
本書で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。
最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。
本資料で紹介されている資料番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。
インテル・プロセッサー・ナンバーはパフォーマンスの指標ではありません。プロセッサー・ナンバーは同一プロセッサー・ファミリー内の製品の機能を区別します。異なるプロセッサー・ファミリー間の機能の区別には用いません。詳細については、http://www.intel.co.jp/jp/products/processor_number/ を参照してください。
Intel、インテル、Intel ロゴは、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2013 Intel Corporation.無断での引用、転載を禁じます。