Moblinアプリケーションのクロスコンパイルとインテル コンパイラーによるパフォーマンス改善 3ページ

インテル コンパイラーを利用したコンパイル

 EclipseやAnjutaでは、autoconfを利用してコンパイルの際の環境設定を行っている。そのため、インテル Atom プロセッサー向け インテル アプリケーション・ソフトウェア開発ツール・スイートに含まれるインテル コンパイラーでコンパイルを行う場合、コンパイル前に行われるconfigureスクリプトの実行時に特定の環境変数が設定されている必要がある(表3)。

表3 configureスクリプトの挙動に影響を与える環境変数
環境変数 与える値 説明
CC icc 使用するコンパイラを指定する
AR xiar 使用するアーカイバを指定する
LD xild 使用するリンカーを指定する
CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include コンパイル時のオプションを指定する
LDFLAGS -L$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$PKG_CONFIG_SYSROOT_DIR/lib リンク時のオプションを指定する

 ここでは、コンパイラやアーカイバ、リンカーを指定するとともに、コンパイラやリンカーに渡すオプションについても設定している(ヘッダーファイルおよびライブラリの検索パスにMoblin SDKのディレクトリを追加している)。そのほか、最適化オプション(たとえば「-O3」など)を指定する場合はCFLAGS環境変数に追加すればよい。

 なお、インテル コンパイラーを利用する場合はEclipseもしくはAnjutaの起動時にインテル コンパイラーへのパスが通っている必要がある。インテル コンパイラーには環境変数を設定するためのスクリプトが用意されているので、ターミナルでこのスクリプトを実行してからEclipseもしくはAnjutaを起動すれば良い。たとえばEclipseの場合、次のようにする。

$ . /opt/intel/atom/Compiler/11.1/056/bin/iccvars.sh
$ eclipse

 Anjutaを利用する場合も同様だ。

$ . /opt/intel/atom/Compiler/11.1/056/bin/iccvars.sh
$ anjuta

Eclipseでの設定方法

 それでは、まずEclipseでの設定手順を解説しよう。Eclipseの「Project」メニューで「Properties」を選択すると、プロジェクトのプロパティ設定ウィンドウが開く。ここで左ペイン内の「C/C++ Build」−「Envronment」を選択すると、環境変数の設定画面が表示されるはずだ(図7)。ここで、次の表4のように環境変数を追加する。

図7 Eclipseの環境変数設定画面
図7 Eclipseの環境変数設定画面
表4 追加する環境変数
環境変数名
CFLAGS -I$$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include
LDFLAGS -L$$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$$PKG_CONFIG_SYSROOT_DIR/lib

 また、コンパイル時にコンパイラに渡したい引数もこれらの環境変数で設定できる。たとえば、コンパイル時に最大限の最適化を実行する場合、次のようにして「-O3」オプションをCFLAGS環境変数に追加すればよい。

-O3 -I$$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include

 続いて、同じくプロパティ設定ウィンドウ内にある「Autotools」−「Configure Settings」を選択する。ここではconfigureスクリプトの実行時に与える引数を設定できる。右ペインで「configure」−「Advanced」を選択し、「Additional command-line options」に「CC=icc LD=xild AR=xiar」と入力する(図8)。

図8 Configureの設定画面「Additional commad-line options」で使用するコンパイラを指定する
図8 Configureの設定画面「Additional commad-line options」で使用するコンパイラを指定する

 以上の設定を行ってメニューバーの「Project」−「Clean」を実行するとMakefileの再生成が行われ、インテル コンパイラーを用いてアプリケーションのビルドが行われるはずだ。

Anjutaを利用する場合

 いっぽうAnjutaを利用する場合は、まず「ビルド」メニューの「プロジェクトの構成」を選択する。「プロジェクトの構成」ウィンドウが表示されるので、「構成方法の種類」に適切な名称を入力し、続いて「Configureのオプション」に次のように入力して「実行」をクリックする(図9)。

CC=icc AR=xiar LD=xild 'CFLAGS=-I$PKG_CONFIG_SYSROOT_DIR/usr/include -I$PKG_CONFIG_SYSROOT_DIR/include' LDFLAGS=-L$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$PKG_CONFIG_SYSROOT_DIR/lib'
図9 「プロジェクトの構成」ダイアログでconfigureスクリプトに与えるオプションを指定する
図9 「プロジェクトの構成」ダイアログでconfigureスクリプトに与えるオプションを指定する

 すると、指定したオプション付きでconfigureが実行され、Makefileが生成されるはずだ。もしconfigureの実行に失敗した場合、「構成方法の種類」で「デフォルト」を選択し、「プロジェクトを再生成する」にチェックを入れて実行した後に再度試してほしい。

 続いて「ビルド」メニューの「構成の選択」で先ほど選択した構成を選択し、「プロジェクトのビルド」を実行すると、インテル コンパイラーを使用してコンパイルが行われる。