CDT/RSEによるクロスコンパイルとリモートデバッグ:生産性向上への道 Eclipseで行うC/C++開発(3)(1/4 ページ)
Eclipse CDT/RSEで行う「クロスコンパイル」と「リモートデバッグ」とは? サンプルを用いて環境構築を実践する。
前回は、サンプルアプリケーションを使って、C/C++開発環境CDTの機能を紹介いたしました。CDTのC/C++エディタやコンパイラ連携機能、グラフィカルビルド機能を用いることで、C/C++アプリケーションの開発を効率的に行えることが分かったと思います。
今回は、前回と同じサンプルアプリケーションを用いて、CDTでの“クロスコンパイル”の方法、Remote System Explorer(RSE)での“リモートデバッグ”の方法について解説します。また、RSEによるリモート操作機能についても併せて紹介します。
CDT、RSEの概要、インストール方法については第1回「組み込み開発におけるEclipseの有効性」を参照してください。
CDTでのクロスコンパイル
クロスコンパイルの実行環境が整っていれば、CDTの管理 Make プロジェクトを利用してクロスコンパイルを行うことができます。
今回はクロスコンパイルの説明のために、NECのWebサイト(http://www.nec.co.jp/cced/SDDSE/index.html)で提供しているサンプル「i686-pc-linux-gnu-gcc」を利用してRed Hat Linux向けにクロスコンパイルを行います。
CDTの管理 Make プロジェクトにてクロスコンパイルを行うには、プロジェクトの[プロパティー]画面にて、クロスコンパイラ向けの設定を行います。それでは、前回作成した「sample」プロジェクトをクロスコンパイラ用に設定してみます。
「sample」プロジェクトを右クリックし、[プロパティー]を選択してプロジェクトの[プロパティー]画面を開きます。そして、[C/C++ ビルド]を選択して、[ツール設定]タブの「GCC C コンパイラー」を表示します。「コマンド」欄にx86-Linuxコンパイラ「i686-pc-linux-gnu-gcc」を指定します(画面1)。
同様にリンカーとアセンブラーのコマンドも以下のx86-Linux用コマンドに設定します。
- 「GCC C リンカー」 → i686-pc-linux-gnu-gcc
- 「GCC アセンブラー」 → i686-pc-linux-gnu-as
次に、ビルド成果物(実行形式ファイル)の名前を修正します。デフォルトでは、「プロジェクト名.exe」として実行形式ファイルが生成されるので、環境に合った名前に修正します。今回は“MyApplication”という名前に修正します。
[ビルド設定]タブをクリックし、下記のとおりに修正します(画面2)。
- 成果物の名前 : MyApplication
- 成果物の拡張子拡張 : (なし)
バイナリー・パーサーをコンパイラに合わせて修正します。本サンプルで利用するクロスコンパイラで作成されるバイナリーの形式はELF形式になりますので、バイナリー・パーサーにELF用パーサーを追加します。
[バイナリー・パーサー]タブを選択して、「GNU Elf パーサー」にチェックを入れます(画面3)。
上記の修正が完了したら、[OK]ボタンをクリックして[プロパティー]画面を終了します。
これで、クロスコンパイルの設定が完了したので、プロジェクトの再ビルドを行います。
「sample」プロジェクトを選択した状態で、メニューの[プロジェクト]−[クリーン]を選択します。コンソールには、設定したクロスコンパイラでビルドが行われたログが表示されます。
これで[C/C++ プロジェクト]ビューには、x86-Linux用のクロスコンパイラで作成された「MyApplication」の実行形式ファイルが作成されるはずです(画面4)。
以上が、CDTによるクロスコンパイルです。
ちなみに、作成されたmakefileの中身は以下のようになっています。
-include ../makefile.init 〜ビルド対象ソースの定義〜 -include ../makefile.defs 〜makeターゲットの定義〜 -include ../makefile.targets
CDTの管理 Make プロジェクトでは、ユーザー定義のmakefileを取り込むような仕組みも提供しています。CDTの管理 Make プロジェクトが生成するmakefileで情報が足りない場合には、プロジェクト直下に下記ファイル名のmakefileを格納することで対応できます。
埋め込み個所 | makefile名 |
---|---|
makfileの先頭 | makefile.init |
makeターゲットの定義前 | makefile.defs |
makefileの最後尾 | makefile.targets |
このようにクロスコンパイラのビルド環境がそろっていれば、CDTを利用して簡単にグラフィカルなクロスコンパイルを行えます。
メモ
Copyright © ITmedia, Inc. All Rights Reserved.