• Showing Page History #55388

Show page source of Moblinアプリケーションのクロスコンパイルとインテル_コンパイラーによるパフォーマンス改善_p3 #55388

[[PageNavi(NavigationList)]]



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


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

<tr><th>環境変数</th><th>与える値</th><th>説明</th></tr>
<tr><td>CC</td><td>icc</td><td>使用するコンパイラを指定する</td></tr>
<tr><td>AR</td><td>xiar</td><td>使用するアーカイバを指定する</td></tr>
<tr><td>LD</td><td>xild</td><td>使用するリンカーを指定する</td></tr>
<tr><td>CFLAGS</td><td>-I$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include</td><td>コンパイル時のオプションを指定する</td></tr>
<tr><td>LDFLAGS</td><td>-L$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$PKG_CONFIG_SYSROOT_DIR/lib</td><td>リンク時のオプションを指定する</td></tr>

</table>
}}}


 ここでは、コンパイラやアーカイバ、リンカーを指定するとともに、コンパイラやリンカーに渡すオプションについても設定している(ヘッダーファイルおよびライブラリの検索パスに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'''のように環境変数を追加する。
[[Thumb(a29a8c380044ee7590e7d465ad4b6755.png, caption=図7 Eclipseの環境変数設定画面)]]

{{{ html
<h6>表4 追加する環境変数</h6>
<table class="wikitable" border="1">

<tr><th>環境変数名</th><th>値</th></tr>
<tr><td>CFLAGS</td><td>-I$$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include</td></tr>
<tr><td>LDFLAGS</td><td>-L$$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$$PKG_CONFIG_SYSROOT_DIR/lib</td></tr>

</table>
}}}


 また、コンパイル時にコンパイラに渡したい引数もこれらの環境変数で設定できる。たとえば、コンパイル時に最大限の最適化を実行する場合、次のようにして「-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''')。
[[Thumb(0315d8502b87b8176cb666251c569d98.png, caption=図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'
}}}
[[Thumb(bfb2862c622eb4a1a798fd644294f4d7.png, caption=図9 「プロジェクトの構成」ダイアログでconfigureスクリプトに与えるオプションを指定する)]]



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


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


[[PageNavi(NavigationList)]]