組み込み開発におけるEclipseの有効性:生産性向上への道 Eclipseで行うC/C++開発(1)(1/2 ページ)
オープンソースのビジュアル開発環境“Eclipse”を用いた、C/C++アプリケーションのクロス開発方法について解説。
組み込み開発の現状とビジュアル開発環境の有効性
近年、携帯電話や車載機器、デジタル家電などに搭載される組み込みソフトウェアは、開発規模の肥大化、製品サイクルの短縮に伴い、ソフトウェアの品質確保や開発効率の向上が大きな課題となっています。
また、組み込みソフトウェアに携わる開発者も年々増加しており、独自のエディタ+コマンドラインでのビルドやデバッグなどの職人的な開発では、開発の生産性や品質を保つことが厳しくなっているのが現状です。
このような背景から、ビジュアルで高機能な開発ツールの導入に注目が集まりつつあります。
そこで、本連載ではEclipseのC/C++開発機能の概要を紹介し、Eclipse C/C++開発環境の構築方法について解説します。
Eclipseの有効性と組み込み開発での利用
ご存じのとおり、Eclipseはオープンソースの統合開発環境です。もともとJava言語のための統合開発環境としてIBMによって開発されましたが、いまではJava以外にもC/C++、PHP、COBOLなどの開発言語にも対応しています。
とりわけ、組み込み向けのC/C++開発環境については、組み込みソフトウェア向けプロジェクト「Device Software Development Platform(DSDP)プロジェクト」が発足し、Eclipse C/C++開発用ツール「CDT(C/C++ Development Tools)」と連携した機能拡張を行っており、“今後10年でEclipseが最も発展していく領域だ”といわれています。
また、いままで独自GUIで提供されていた商用製品も、Eclipseの機能拡張の容易さから、Eclipseをベースとした製品へ移行し始めています。
参考記事:Eclipse DSDPプロジェクトについて | |
---|---|
⇒ | Eclipse Foundationのプロジェクト最新事情 組み込み開発でもEclipseを! |
以下に、組み込みC/C++アプリケーションの開発にEclipseを利用するメリットを示します。
C/C++の高機能なグラフィカル開発環境を無料で利用できる
EclipseのC/C++開発環境は“無償”で提供されており、商用製品に勝るとも劣らない機能を無償で利用できます。EclipseのグラフィカルなGUIを利用することで、コンパイラやデバッガなどのコマンドを実行せずに、効率的に開発を行えます。
さまざまな機能をEclipseの統一されたインターフェイスで利用できる
今回紹介するC/C++開発環境のほかにも、“構成管理クライアント機能”や“UMLモデリング機能”などさまざまな機能をEclipseの統一されたユーザーインターフェイスで利用できます。そのため、ツールごとに使い方を覚えるといった導入時の問題点から解放されます。また、“エディタなどで開発した成果物をSubversionなどの構成管理サーバにチェックインする”といった成果物の連携をシームレスに行うことができます(図1)。
参考記事:EclipseのSubversionを使った構成管理について | |
---|---|
⇒ | CoolなEclipseプラグイン(15) バージョン管理に便利なSubversiveプラグイン |
Eclipseプラグイン機能により、独自カスタマイズも容易
ご存じのとおり、Eclipseは“プラグイン”を追加することで、さまざまな機能を追加できます。また、Eclipse自体にPDE(Plug-in Development Environment)と呼ばれるプラグイン開発のための環境も提供されており、容易に機能を拡張できます。
ここで、Eclipseの導入事例を2つ紹介します。
まず、「開発者がそれぞれ別のエディタを使用している現場に構成管理ツールを導入するケース」です。
別々のエディタを利用している状況で構成管理ツールを導入すると、本来密接に連携しなければならない業務を別々のツールで行うことになります。
その点、Eclipseは“エディタと構成管理ツールが統合”されており、コーディング時と同じ操作性でファイルチェックアウト、チェックインができるため、構成管理と併せた開発を効率的に行うことができます(図2)。
次に、「Intel x86系のLinux PCに実機のシミュレーション環境を構築したケース」です。
Eclipseを適用する前では、エディタでコーディングした後にコマンドラインで、ビルド、デバッグする必要があります。組み込み開発に慣れた技術者であれば、エディタ+コマンドラインのデバッグでも十分に開発できますが、開発に不慣れなメンバーの場合、gdbコマンドを覚える必要があり、効率的に開発を行うことが困難です。
しかし、Eclipseを適用すれば、統一されたグラフィカルなユーザーインターフェイスで、コーディング 〜 ビルド 〜 デバッグまでを行うことができるため、開発に不慣れな技術者でも効率的に開発を行えます。gdbのブレークポイントや変数のウオッチコマンドなどを覚えることなく、マウス操作でデバッグを行えます(図3)。
Eclipse CDT、RSE、Ecloxとは?
CDTとは?
CDTは、“Eclipse上でC/C++開発を支援する”プラグインです。外部コンパイラ、デバッガと連携したビジュアルな開発環境を提供します。CDT自体にはコンパイラ、デバッガは含まれておりませんので、別途コンパイラ、デバッガは準備する必要があります(図4)。
また、リモートマシンがgdbserverに対応している場合には、ホストマシン(Windows)側から、リモートマシン(Linuxなど)上のアプリケーションをリモートでデバッグすることも可能です(図5)。
以下に、CDTの提供機能を示します。
C/C++エディタ機能
C/C++アプリケーションのコーディングを支援する高度なエディタ機能を提供します。
- シンタックスハイライト
- コード・アシスト
- テンプレート
- リファクタリング支援
- C/C++検索
グラフィカルビルド機能
コンパイラと連携したグラフィカルなビルド機能を提供。makefileを自動生成する機能も提供しています。
- ビルドツール連携
- makefile自動生成
グラフィカルデバッグ機能
gdbと連携したグラフィカルなデバッグ機能を提供。gdbの一通りの機能をEclipseのGUIから利用できます。
- ブレークポイント設定
- 実行制御
- 変数ウオッチなどのウオッチ機能
RSEとは?
次にRSE(Remote System Explorer)について説明します。
RSEは、Eclipse DSDPプロジェクトのサブプロジェクトである、Target Managementが提供しているプラグインです。“Eclipse上からリモートマシンにアクセスして、FTPやターミナルソフトウェアの機能を利用”できます。接続プロトコルはssh、ftp、dstore(RSE独自プロトコル)に対応しています(図6)。
RSEでは、以下の機能を提供しています。
リモートファイルシステム管理機能
リモートマシンのファイルシステムを表示、編集する機能です。ローカルマシンからのファイル転送やリモートシステム上のファイル検索などさまざまな機能を提供しています。
- ツリービュー、テーブルビュー形式でのリモートファイルシステムの表示
- コピー、ペースト、ファイル編集
- アーカイブファイル操作
- GUIでのリモート検索
リモートシェル(コマンド)実行機能
リモートマシンのコマンドを実行する機能です。Eclipseからリモートマシンのコマンドを実行し、その結果を受け取ることができます。
- リモートシステムのコマンド実行機能
リモートデバッグ機能
CDTのデバッグ機能と連携し、リモートデバッグを支援する機能です。リモートマシンへのファイル転送やパーミッション設定を自動で行います。
- リモートマシンへの自動ファイル転送およびパーミッション設定
- CDTデバッグ機能と連携したリモートデバッグ支援
Ecloxとは?
続いて、Ecloxについて説明します。
Ecloxは、Ecloxプロジェクトが提供しているプラグインで、“ドキュメント作成ツールdoxygenをEclipse上から利用”できます(図7)。
Ecloxでは、以下の機能を提供しています。
doxygen構成ファイルの作成機能
doxygen構成ファイル(生成するドキュメントのフォーマットなどを定義するプロパティファイル)をEclipse上で作成する機能を提供します。
- doxygen構成ファイル(ひな型)の作成
- doxygen構成ファイルエディタ
doxygenコマンドの実行制御
doxygenコマンドをEclipse上から制御します。
- doxygenコマンドの実行・停止
Copyright © ITmedia, Inc. All Rights Reserved.