Eclipse with CDT

最終更新日2003年2月20日
作成者:まき(sakaki@lares.dti.ne.jp)

このページは、フリーのJava統合開発環境Eclipse(エクリプス)で、C/C++を開発行おうというけったいな事を実現するための準備を目指します。

Eclipseの大きな特徴として、プラグインによって簡単に機能拡張が行えるということがあります。EclipseでC/C++の開発を行う際には、CDTプラグインを導入する事になります。

このページはcdt user FAQを参考にして作成しました。ただ、リンク先のページの更新がのびのびとなっているようでしたので、新しく書き起こしています。何かおかしいところがあればメールして頂けると助かります。

Eclipseの準備

Eclipseは本来はJava用の統合開発環境であり、Eclipse自体もJavaのプログラムとして開発されています。ですから、Eclipseを動かすためにはまずJava2SDKがインストールされている必要があります。また、Javaでは「一度書いたらどこでも動く」が売り文句ですが、Eclipseには残念ながら当てはまりません。GUIでも充分な実行速度を得るために、グラフィックス関係の部分はネイティブコードで書かれているので、プラットフォームごとに異なるパッケージを導入する必要があります。

そこでこのページで紹介するEclipseは、Windows版Eclipse2.0.1とします。テストしたプラットフォームはWindows2000SP3、導入しているJavaのバージョンは1.4.1です。これは、

によります。最新版である2.0.2でも2.0.1の多国籍語化パッケージをそのまま導入できると云う話も耳にしていますが、正式対応でもないのを無理に利用するわけにも行くまい、と思って一つ前のバージョンで作業を行います。

Eclipseの起動画面(クリックすると大きくなります)
Eclipse2.0.1+多国籍語化パッケージ

コンパイラの準備

EclipseにC/C++プラグインを導入したところで、そのままではC/C++のコンパイルが出来るわけではありません。しかし、Eclipseではmakefileを書く事によって様々なコンパイラを使用することが出来ます。まだC/C++のコンパイラが用意されていないのなら、別途C/C++のコンパイラを導入する必要があります。といってもVCなんぞを持っているのでしたら特にEclipse+CDT環境を構築する必要もないでしょうから、フリーのコンパイラを利用する事にしましょう。

フリーのコンパイラでの有名どころといえばgccですが、そのWindows版であるMinGW(http://www.mingw.org/)をインストールします。同サイトからMinGW-2.0.0-e.exeをダウンロードし、インストールを実行してください。MinGWは、デフォルトではC:/MinGWへインストールされます。

MinGWのインストール
MinGWのインストール

ただ、このままだとコンパイルをするたびにいちいちフルパスで実行しなくてはならないので厄介です。そこで、コマンドサーチパスを通すためにパスの設定を行います。Windos2000の場合、マイコンピュータを右クリック->プロパティ->詳細->環境変数で、ユーザ環境変数に変数名「PATH」、値「MinGWまでのパス(標準だとc:\MinGW/bin)」を設定して下さい。ただ、テストした環境ははマルチブート構成になっている関係で、実際に作業をしているWindows2000はDドライブにインストールされていて、下の画像ではパスがデフォルトのものとは異なっています。割り引いて考えてください。

PATHの設定
PATHの設定

Eclipse CDTのインストール

ここまででEclipseとC/C++コンパイラの準備が終わりました。ようやく本題のCDTのインストールです。CDTはEclipseのサブプロジェクトとして開発が進んでいます。http://www.eclipse.org/cdt/にあるダウンロードページから1.0 GA - Windowsを選んでダウンロードして下さい。これは、2002年12月31日現在ではeclipse-cdt_1.0_win32.zipというZIPファイルです。

インストールといってもそんなに手間が掛かるわけではありません。先のZIPファイルを解凍すると出てくるディレクトリ(featureとpluginです)を、Eclipseのルートディレクトリにコピーするだけです。これでEclipseにCDTプラグインが導入されました。ただし、この作業をする際にはEclipseは終了させて置いてください。

Eclipseを再起動すると、更新の確認Windowが表示されます。ここではいを選択して更新マネージャを起動し、CDTプラグインの適用をするため、チェックボックスにチェックして下さい。ここでまた再起動が要求されます。

CDT適用後のEclipse(クリックすると大きくなります)
CDT適用後のEclipse

これでCDTプラグインのインストールは終了です。

Hello Eclipse World!

ここではEclipseのCDTを利用したC++の張りぼてプログラムを作成します。Eclipseではmakeファイルを自分で書いてやる必要があるので、プログラムの仕方としてはVisual C++やBorland C++ BuilderのようなIDEを利用した手法よりも、従来のエディタとmakefileを利用した従来の手法を強化したものに近い気がします。

ここではソースコード自体の詳細には一切触れません。簡単なプログラムですから、分らないことがある場合は、Webで捜すよりも思い切って近くの書店でC++に関する教科書を購入されると良いでしょう。

C++の新規プロジェクト

で、Hello Worldです。プログラムを始める時の基本はHello Worldだと言うことで、C++でHello Worldを書いてみることとしましょう。EclipseでC/C++を書くためには、ファイル->新規->新規プロジェクト->C++->Standard Make C++ Projectを選択して下さい。次にビルドするコマンドを指定します(デフォルトのままだとどうもうまく動いてくれません)。Build Settingのタブを選択して下さい。

ビルドコマンドの設定
ビルドコマンドの設定

Build Commandでデフォルトを使用というチェックを外し、Build Commandの欄に

mingw32-make -f makefile

と設定して下さい。

ソースコードとmakefile

C/C++のプロジェクトを新規作成すると、Eclipseのナビゲータ上にHelloWorldをルートノードとするディレクトリツリーが生成されます。このツリーに.project.cdtprojectという二つのファイルが自動的に生成されます。これは、このプロジェクトに関する設定がかかれたXMLファイルです。

ファイル->新規->その他->シンプル->ファイルを選択してディレクトリツリーに新しいファイルを作成します。新しく二つのファイルを作成して下さい。一つはソースコードを書くHelloWorld.cppファイル、もう一つはmakeルールを定義するmakefileです。今回利用する二つのファイルには次のようなソースを利用します。

HelloWorld.cpp
#include<iostream>

using namespace std;

int main(){
    cout <<"Hello Eclipse with CDT World!!\n";
    return 0;
}

makefile
objects = HelloWorld.o

HelloWorld : $(objects)
	gcc -o HelloWorld $(objects) -L D:/MinGW/lib/gcc-lib/mingw32/3.2/ -lstdc++

$(objects) : HelloWorld.cpp
	gcc -c HelloWorld.cpp

all :
	${MAKE} HelloWorld

.PHONY : clean
clean :
	-del HelloWorld.exe $(objects)

ビルドと実行

上の二つのソースを入力した後、プロジェクト->すべて再Buildを選択して下さい。makeが実行され、HelloWorld.exeという実行ファイルが作成されます。この様子はEclipseの左下にあるC-Buildタブの中にに表示されます。ビルドに失敗した場合にはここにエラーメッセージが表示されますので、それを読んで適宜修正して下さい。

プログラムを動かすにはコマンドプロンプト上で実行ファイルを叩いても良いのですが、Run->実行を選ぶことでも出来ます。起動構成を設定するWizardが立ち上がりますので、mainタブにあるC/C++ Applicationへ実行ファイル名

HelloWorld.exe

を入力して実行ボタンを押して下さい。先のC-Buildタブと一緒に並んでいるコンソールタブに実行結果が出力されます。

HelloWorldの起動構成
HelloWorldの起動構成

デバッガ

EclipseではデバッガにGDBを利用します。しかし、利用できるGDBのバージョンは5.2.1以上が推奨されています。MinGWを標準的なパッケージでインストールした場合、GDBのバージョンは5.1.1ですので、5.2.1にバージョンアップする必要があります。

で、デバッガの紹介をしたいところなのですが…。なんかネタにできるような短めのソースが思いつかず、悩んでいます(苦笑)。なにかあれば教えてください。