- - PR -
前回は、サンプルアプリケーションを使って、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)。

画面1 [プロパティー]ダイアログの[ツール設定]タブ
同様にリンカーとアセンブラーのコマンドも以下のx86-Linux用コマンドに設定します。
- 「GCC C リンカー」 → i686-pc-linux-gnu-gcc
- 「GCC アセンブラー」 → i686-pc-linux-gnu-as
| 注:今回のサンプル以外のコンパイラを設定する場合には、同様に[C/C++ビルド]画面で「GCC C コンパイラー」「GCC C リンカー」「GCC アセンブラー」のコマンドを適切に設定してください。ここで設定するコマンドは、環境変数「path」で設定されたパス上に存在する必要があります。 |
次に、ビルド成果物(実行形式ファイル)の名前を修正します。デフォルトでは、「プロジェクト名.exe」として実行形式ファイルが生成されるので、環境に合った名前に修正します。今回は“MyApplication”という名前に修正します。
[ビルド設定]タブをクリックし、下記のとおりに修正します(画面2)。
- 成果物の名前 : MyApplication
- 成果物の拡張子拡張 : (なし)

画面2 [プロパティー]ダイアログの[ビルド設定]タブ
バイナリー・パーサーをコンパイラに合わせて修正します。本サンプルで利用するクロスコンパイラで作成されるバイナリーの形式はELF形式になりますので、バイナリー・パーサーにELF用パーサーを追加します。
[バイナリー・パーサー]タブを選択して、「GNU Elf パーサー」にチェックを入れます(画面3)。

画面3 [プロパティー]ダイアログの[バイナリー・パーサー]タブ
上記の修正が完了したら、[OK]ボタンをクリックして[プロパティー]画面を終了します。
| 注:バイナリー・パーサーを正しく設定しないと、CDTがバイナリーファイルを正しく認識できずに、デバッグ構成設定時のバイナリーファイル検索などができなくなります。必ずお使いのコンパイラに合わせたバイナリー・パーサーを選択するようにしてください。 |
これで、クロスコンパイルの設定が完了したので、プロジェクトの再ビルドを行います。
「sample」プロジェクトを選択した状態で、メニューの[プロジェクト]−[クリーン]を選択します。コンソールには、設定したクロスコンパイラでビルドが行われたログが表示されます。
これで[C/C++ プロジェクト]ビューには、x86-Linux用のクロスコンパイラで作成された「MyApplication」の実行形式ファイルが作成されるはずです(画面4)。

画面4 [C/C++ プロジェクト]ビューの様子
以上が、CDTによるクロスコンパイルです。
ちなみに、作成されたmakefileの中身は以下のようになっています。
-include ../makefile.init |
CDTの管理 Make プロジェクトでは、ユーザー定義のmakefileを取り込むような仕組みも提供しています。CDTの管理 Make プロジェクトが生成するmakefileで情報が足りない場合には、プロジェクト直下に下記ファイル名のmakefileを格納することで対応できます。
埋め込み個所 |
makefile名 |
| makfileの先頭 | makefile.init |
| makeターゲットの定義前 | makefile.defs |
| makefileの最後尾 | makefile.targets |
| メモ | |
CDTの管理 Make プロジェクトでは、Cソース、アセンブラファイル単位でのコンパイルオプションの変更もサポートしています。ソースごとにコンパイラ最適化レベルなどを変更する際に利用できます。 ソース単位でコンパイルオプションを変更したい場合には、対象のソースを右クリックしてメニューの[プロパティー]を選択後に起動される[プロパティー]画面にて、[C/C++ビルド]を選択して、適切な値を設定後に[OK]ボタンをクリックしてください(画面5)。 ![]() 画面5 [C/C++ビルド]で適切な値を設定 |
|
このようにクロスコンパイラのビルド環境がそろっていれば、CDTを利用して簡単にグラフィカルなクロスコンパイルを行えます。
| メモ | |
CDTの管理 Make ビルドのオプションやエラーパーサーがお使いのコンパイラに対応していない場合には、CDTをカスタマイズすることで対応できます。 CDTのカスタマイズは「拡張ポイント」と呼ばれるカスタマイズポイントをCDTがあらかじめ提供しているので、簡単に行うことができます。詳細はCDT SDKに含まれる「CDT Plug-in Developer’s Guide」を参照してください。 |
|
関連記事 設計/開発技法
- 特集:Javaは組み込みに“不向き”は本当か?
- 連載:BREWアプリケーション開発入門(全10回)
- 連載:イチから作って丸ごと学ぶ! H8マイコン道(全12回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:組み込みLinux開発入門(全3回)
- 連載:T-Engineプログラミング入門(全4回)
- 連載:Symbian OS開発の勘所(全10回)
- 連載:Symbian OSアプリ開発の手引き(連載中)
- 連載:解説! ロボット開発環境Robotics Studio(全4回)
- 連載:Robotics Studio活用術 はじめて作るサービス(全5回)
- 連載:生産性向上への道 Eclipseで行うC/C++開発(全4回)
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)














