HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。 |
[記事一覧を見る]
EclipseやAnjutaのMoblin SDKプラグインは非常に便利であるが、既存のアプリケーションをMoblin向けにコンパイルする場合など、コマンドラインでのコンパイルが必要なケースもある。また、テキストエディタ+コマンドラインによる開発のほうが親しみやすい開発者もいるだろう。そこで、最後にIDEを利用せず、コマンドラインベースでMoblinアプリケーションのコンパイルを行う方法を説明しておこう。
開発用のLinux環境でMoblinアプリケーションをコンパイルするには、Moblin SDKに含まれるクロスコンパイラやヘッダーファイル、ライブラリを利用する。まず、これらを利用できるように環境変数を設定する。
$ export PKG_CONFIG_SYSROOT_DIR=$MOBLIN_TOOLCHAIN/i586-moblin-linux/sys-root $ export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig $ export PATH=$MOBLIN_TOOLCHAIN/bin:$PATH
上記の設定は適当なシェルスクリプトとして保存しておき、利用の際に適宜ロードするようにしておくとよいだろう。
以上の環境変数が設定された状態で、コンパイルしたいアプリケーションのconfigureスクリプトを次のような引数付きで実行する。
$ ./configure --host=i586-moblin-linux --prefix=/tmp/<適当な一時ディレクトリ>
今回はコンパイルを実行したマシンとは異なるマシンにファイルをインストールしたいので、インストール先を指定する「--prefix」オプションで適当な一時ディレクトリを指定しておく。
また、インテル コンパイラーを利用したい場合やコンパイルオプションを変更したい場合もこのときに指定を行う。たとえばより強力な最適化を行う「-O3」オプション付きでインテル コンパイラーを利用する場合は次のようにする。
$ ./configure --host=i586-moblin-linux --prefix=/tmp/<適当な一時ディレクトリ> CC=icc AR=xiar LD=xild 'CFLAGS=-I$$PKG_CONFIG_SYSROOT_DIR/usr/include -I$$PKG_CONFIG_SYSROOT_DIR/include -O3' 'LDFLAGS=-L$$PKG_CONFIG_SYSROOT_DIR/usr/lib -L$$PKG_CONFIG_SYSROOT_DIR/lib'
次に、通常通りmakeコマンドを実行してコンパイルを行う。
$ make
コンパイルが完了したら、「make install」コマンドを実行し、指定した一時ディレクトリ以下にファイルをインストールする。
$ make install
あとは、scpやrsync等を利用し、一時ディレクトリ以下にインストールされたファイルをMoblin環境にコピーすればよい。
なお、コンパイルにconfigureを利用しないアプリケーションの場合は、上記の環境変数を設定した上でコンパイラや関連ツールとして「$MOBLIN_TOOLCHAIN/bin」以下にある「i586-moblin-linux-gcc」や「i586-moblin-linux-ld」、「i586-moblin-linux-ar」などを利用するよう手動で設定する必要がある。
作成したMoblinアプリケーションは通常、RPM形式のパッケージとして配布することになる。Moblinでは「Moblin Package Creator」と呼ばれるパッケージ作成ツールが用意されており、これを利用することで簡単にRPMパッケージの作成が可能だ(図10)。Moblin Package CreatorはEclipseの「Project」メニュー内「Invoke Moblin Tools」−「Create RPM/DEB」から起動できる。また、Anjutaを使っている場合はアプリケーションメニューから「プログラム」−「Moblin Package Creator」を選択する、もしくはターミナルで下記のように実行して起動できる。
$ moblin-package-creator
Moblin Package Creatorの「Main」タブでは、パッケージ名や依存パッケージ、バージョン、説明などを入力する。それぞれの意味は次の表5のとおりだ。
項目名 | 意味 |
---|---|
Name | パッケージ名 |
Requires(RPM) | 依存するRPMパッケージ |
BuildRequires(RPM) | ソースコードからバイナリをビルドする際に必要となるRPMパッケージ |
Depends(DEB) | 依存するdebパッケージ。debパッケージを作成する際に入力する |
BuildDepends | ソースコードからバイナリをビルドする際に必要となるdebパッケージ。debパッケージを作成する際に入力する |
Project root path | ソースコードや各種設定ファイルなど、プロジェクトに含まれるファイルが含まれるディレクトリのパス |
Version | パッケージのバージョン |
Description | パッケージの説明 |
Package Group | パッケージの分類 |
Configure Parameters | パッケージ作成の際にconfigureプログラムに渡す引数 |
これらを入力したら、続いて「Build Control」タブの「Output」項目で作成するパッケージや保存先を設定する。Moblin Package CreatorではRPMパッケージだけでなくdebパッケージや各種ソースパッケージも作成できるが、基本的にはRPMパッケージのみを作成すればよい。また、「License Details」タブではライセンスや作成者の名前といった情報を入力できる。
以上の設定の完了後、「Create」をクリックするとパッケージの作成が行われ、指定したディレクトリにパッケージが保存される。
作成したパッケージは、Moblin環境にコピーした後に次のようにしてインストールできる。
$ sudo rpm -i <パッケージ名>
インストールされたパッケージはMoblinの「アプリケーション」タブに登録され、ほかのアプリケーションと同様、ここから起動できる(図11)。
[PageInfo]
LastUpdate: 2010-04-08 18:46:05, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members