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

 Moblinアプリケーションはクロスコンパイル環境での開発が推奨されており、通常のLinux向けアプリケーションとは若干開発手順が異なる。本記事ではIDEを使った基本的な開発手順や、インテル コンパイラーを利用してMoblinアプリケーションをコンパイルするための設定方法を解説する。また、インテル コンパイラーとGCCの性能比較結果についても紹介する。

 前回述べたとおり、Moblinは比較的リソースの少ない環境に向けたOSであるため、Moblinアプリケーションを開発する場合はMoblin SDKや各種開発環境を導入したLinuxマシン上でコーディングやコンパイルを行い、テスト・デバッグは実機もしくは仮想環境上にインストールしたMoblin環境にバイナリを転送して行う、という行程が推奨されている。MoblinではEclipseやAnjutaなどのIDE向けにプラグインが用意されており、これらを利用することでこれらの作業を自動化することが可能だ。本記事ではまずEclipseを利用する場合の手順を説明し、続いてAnjutaを利用する手順を説明する。また、テキストエディタでソースを編集し、コマンドラインでコンパイル等を行うという古典的な開発スタイルについても利用可能なので、こちらについても簡単ではあるが述べておこう。

 なお、下記ではMoblinアプリケーションの開発環境がすでに構築されていることを前提に解説を行っていく。開発環境の構築については前回の記事で詳細に説明しているので、そちらを参照していただきたい。

Eclipseを利用したMoblinアプリケーション開発手順

 まず、Eclipseを利用したMoblinアプリケーションの開発手順について解説していこう。

プロジェクトの作成

 Eclipseでは、「プロジェクト」と呼ばれる単位でファイルや各種依存関係、そのほかアプリケーションの作成に必要な情報を管理する。Moblinアプリケーションを開発する場合、Cの開発プロジェクトとしてプロジェクトを作成する。まずEclipseを起動し、「File」メニューの「New」−「Project」を選択する。「New Project」ウィンドウが表示されるので、ここで「C Project」を選択し、ウィザードを進めて行く。

 ウィザードではプロジェクト名や「Project Type」などを設定する(図1)。「Project type」では「Moblin Autotools Project」内の「Clutter Hello World Project」を選択する。

図1 Eclipseの「C Project」作成ウィザード。「Project name」欄にプロジェクト名を入力し、「Project type」では「Moblin Autotools Project」以下にある「Clutter Hello World Project」を選択する
図1 Eclipseの「C Project」作成ウィザード。「Project name」欄にプロジェクト名を入力し、「Project type」では「Moblin Autotools Project」以下にある「Clutter Hello World Project」を選択する

 続いて「Next」をクリックすると、作者名やコピーライト、ソースコード格納ディレクトリ、ライセンスなどを入力する画面(Basic Settings画面)が表示されるので、それぞれ適切なものを入力して「Next」をクリックする。それぞれの意味は次の表1のとおりだ。

表1 Basic Settings画面で入力する項目
項目名 意味
Author アプリケーションの作者名
Copyright notice アプリケーションのコピーライト表記
Source ソースコードを格納するディレクトリ
License アプリケーションの配布ライセンス

 最後に各種設定を行う「Select Configurations」画面が表示されるが、ここでは特に設定するべき項目はないので、そのまま「Finish」をクリックしよう。以上でソースコードおよび「ChangeLog」や「AUTHORS」、「COPYING」といった各種ドキュメント、各種設定ファイル等のひな形が生成される。 これらのファイルに独自の修正を加えて行き、アプリケーションを作成して行くわけだ。

コンパイルとテスト

 以上のようにプロジェクトを作成すると、プロジェクトの作成後に自動的にコンパイル作業が行われ、作成したプロジェクトディレクトリ内のソースコードディレクトリ(デフォルトでは「src」ディレクトリ)にバイナリが生成される。ただし、ここで作成されたバイナリはMoblin環境向けのバイナリであるため、開発用環境では直接実行できない。そのためコンパイル後のテストやデバッグは、このバイナリを別途用意したMoblin環境にネットワーク経由で転送して行うことになる。

 バイナリをMoblin環境に転送して実行可能にする(デプロイする)には、まずEclipseのメニューバーの「Project」−「Invloke Moblin Tools」−「Deploy」を選択する。

 すると、デプロイ先を選択するウィンドウが表示される。デフォルトではデプロイ先としてローカルマシンのみが表示されているが、ここではネットワーク経由でデプロイを行うので、まずは「New」をクリックし、デプロイの設定を行う。「New Connection」ウィンドウが表示されるので、「System type」として「SSH Only」を選択し、ウィザードを進めて行こう(図2)。

図2 「New Connestion」画面。「Host name」にデプロイ先Moblin環境のIPアドレスもしくはホスト名を入力する。「Connection name」や「Description」は任意で構わない
図2 「New Connestion」画面。「Host name」にデプロイ先Moblin環境のIPアドレスもしくはホスト名を入力する。「Connection name」や「Description」は任意で構わない

 設定が完了するとデプロイ先の選択ウィンドウに戻るので、「Connection」で先ほど入力したデプロイ先を選択し、続いてリスト内の「Root」をダブルクリックする。すると「Enter Password」ダイアログが表示されるので、「User ID」に「root」、「Password」にrootのパスワードを入力して「OK」をクリックする。初回接続時は接続先の指紋情報を確認するメッセージボックスが表示されるので、「Yes」をクリックして続行する。するとデプロイ先となるディレクトリを選択できるようになるので、実行ファイル等を転送するディレクトリ(通常は「/」)を選択し、「OK」をクリックする(図3)。

図3 「Connection」で先ほど作成したSSH接続を選択し、デプロイ先として「Root」−「/」を選択する
図3 「Connection」で先ほど作成したSSH接続を選択し、デプロイ先として「Root」−「/」を選択する

 これで、Moblin環境の指定したディレクトリ(通常は/usr/local/bin)以下に作成したアプリケーションがデプロイされる。たとえば作成したプログラム名が「helloworld」なら、Moblin環境のターミナルで下記を実行することで、プログラムを実行できるはずだ。

$ /usr/local/bin/helloworld

 なお、以上の手順でデプロイしたプログラムは、「Project」メニューで「Invloke Moblin Tools」−「Undeploy」を選択し同様の手順を踏むことで削除できる(アンデプロイ)。