PHP開発環境もできたことだし、せっかくeclipseを使うので他言語の環境も同じeclipseで動かしてしまおうと欲張ってみることにします。
とは言ってもJavaは初めから入ってるんですよね。。


もう一つ他の言語としてCDTというC/C++の開発環境プラグインがメジャーっぽいのでこれ入れてみる


幸い去年入れていたMinGW+MSYS環境があったのでコンパイラはこれで決まり。




■ CDTプラグインの追加インストール


「ヘルプ」「新規ソフトウェアのインストール」で現れた画面の作業対象リストの中から[--すべての使用可能なサイト--]を選び、 「プログラミング言語」の頭▲を押してリストの中から「C/C++ Development Tools」にチェックを入れて「次へ」ボタンを押す。


更に「次へ」ボタンを押しライセンスをハイスピードで読んだ刹那「●使用条件の条項に同意します。」を選択し「完了」ボタンを押す。
インストールが終わると再起動を促すメッセージが表示されるので「今すぐ再始動」を押す。



再起動すると画面いっぱいに概要わらわらが表示されてるのでとりあえず上部の「ようこそ」タブのX印を押して消す。




■ 設定


まずはC/C++の設定を行うべく「ウィンドウ」メニューから「設定」画面表示
左サイドに新たにC/C++というメニューが加わっているのでここの中身を設定していきます。


「デバッグ」画面の文字エンコードをShift_JISに変更(とりあえず全てをシフトJISで行う宗教なもので)


「新規CDTプロジェクト」「Makefileプロジェクト」で表示された画面のバイナリー・パーサーの中から以下の3つをチェック

  • Elfパーサー
  • PE Windowsパーサー
  • Cygwin PEパーサー

これがバイナリファイル検索用に使われるらしい




■ Cプロジェクト作成


「新規」プロジェクトからCプロジェクトを選んで「次へ」ボタンを押してプロジェクト名として "hello" を入力
デフォルトロケーションが前回PDT設定によりドキュメントルートになっているのでこれは使わないようにチェックを外して
MSYSの仮想ホームディレクトリ直下にプロジェクト名と同名ディレクトリで作成するべく
C:\MinGW\msys\1.0\home\Username\helloに設定


※1つのプロジェクトに対して1つのアプリケーション開発なので、単なる「Hello world.」表示アプリケーションに対して1つのプロジェクトを作ることになる。


プロジェクト・タイプとして、実行可能リストの中から「Hello World ANSI Cプロジェクト」を選ぶ


これで「完了」ボタンを押す



そうするとC/C++のパースペクティブ(画面構成)に切り替わる。切り替わらなければ右上から手動で選ぶ


Cプロジェクトにはインクルードが作成されていて、その中はMinGWのヘッダファイルとライブラリに通じている。


helloプロジェクトには既にソース・ファイルhello.cが作成されている。(先ほどHello World ANSI Cプロジェクトを選んだので)


-- Cソースコード[hello/src/hello.c] --
/*
 ===========================================================
 Name        : hello.c
 Author      :
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ===========================================================
 */

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    puts("!!!Hello World!!!");
    return EXIT_SUCCESS;
}



■ 実行


では実行ボタンを押してこのソースを実行してみます。
でもその前に、C言語はコンパイルして実行ファイル生成した後でないと実行できません。
でもCDTでは始めから「プロジェクト」メニューの「自動的にビルド」にチェックが入っているので実行ボタンを押すと「コンパイル⇒実行ファイル生成⇒実行」の流れ作業を自動でやってくれるようなので実行ボタン1つ押すだけで実行までできてしまいます。


もし実行ファイル生成と実行を分けたい場合は自動的にビルドのチェックを外してから金づちのアイコンのボタンで実行ファイル生成を先に行うことになると思います。



「!!!Hello World!!!」が表示されたら成功です。
もし失敗したらいろいろな原因があるので片っ端から確認していくしかありません。


○まずMinGWの場所が認識できてない場合は
「ウィンドウ」メニュー「設定」の「C/C++」「ビルド」「環境」画面から「追加」ボタンで新規変数追加

名前:path
値:C:\MinGW\bin;C:\MinGW\msys\1.0\bin



○実行時に「起動に失敗しました。バイナリーが見つかりません」と表示されたら
実行ファイル(EXEファイル)が作成されていないことになります。
これはCプロジェクト作成時にプロジェクトのタイプとしてstaticライブラリーを選んだ可能性があります。
これだとコンパイル止まりなのでEXEファイルが作成されません。




■ 日本語を表示させてみる


-- Cソースコード[hello/src/hello.c] --
/*
 ===========================================================
 Name        : hello.c
 Author      :
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ===========================================================
 */

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    puts("!!!日本語テスト表示!!!");
    return EXIT_SUCCESS;
}



これを実行してみると、コンパイル途中に警告を表示するようになりました。
ただ、実行ファイルは作成できました。


-- 警告 --
..\src\hello.c: In function 'main':
..\src\hello.c:15:7: warning: unknown escape sequence: '\216'


これはシフトJISでよく起こる0x5C問題です。0x5Cコード(\文字)の次に続くコードがエスケープされてると言っています。


試しに実行してみるとやはり化けています。


-- 実行[hello/バイナリー/hello.exe] --
!!!日本語テスト侮ヲ!!!


なのでMinGWのコンパイル時にシフトJISとして読み取って実行するオプションがあるのでこれを設定してみます。



helloプロジェクトを右クリックしてプロパティー画面を表示させ、「C/C++ビルド」メニューの「設定」画面でツール設定タブを選んでGCC C Compilerの その他のフラグとして "-finput-charset=cp932"と"-fexec-charset=cp932"の2つのオプションを追加して「適用」「OK」とします。


-- 設定 --
-c -fmessage-length=0 -finput-charset=cp932 -fexec-charset=cp932


これでコンパイル時の警告が出なくなりました。なので表示も問題ないです。


とりあえずこれでCDTの環境もできたということにしておきます。