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