kagamihogeの日記

kagamihogeの日記です。

Eclipse CDT + MinGW

EclipseC/C++開発環境を実現するという脅威のプラグイン、それがCDT。導入などがちょっとクセあるので、再セットアップなんかのときに困らないよう関連URLなどをメモ。

関連サイト

こっちのサイトのほうが断然良くまとまってるし、詳しいです。

Eclipse with CDT
C-Compiler Wiki CDT

EclipseとCDTの導入

All-In-One EclipseにCDT含まれてるし、大半のプラグイン(WTPとか)が最初から含まれた状態なので色々と楽です。

C環境の導入

プラグインはプラグインに過ぎないので、コンパイラや実行には別途ファイルが必要です。windowsではcygwinMinGWを導入します。

ただ、CDTがcygwin前提にしてる部分が結構あるみたいなのでちょい面倒でもcygwin入れたほうがいいかもしれません。MinGWでも別に大丈夫だとは思うけど。

以下のメモはMinGW前提に書かれてる部分があるので、随時脚注を入れてます。

C/C++プロジェクトの作成と実行

とりあえず「スタンダード C Makeプロジェクト」を使います。ほかの種類は色々と特典付きですが割愛。

[Make ビルダー]のビルド・コマンドのデフォルトチェックを外し、[mingw32-make]*1と入力
[環境]でPATH=C:\MinGW\binみたいにMinGWへパスを通す。
[バイナリー・パーサー]のバイナリー・パーサーで、ElfパーサーとPE WindowsパーサーとCygwin PE パーサーにチェックを入れます。これにチェックを入れないとEclipse上からEXEファイルの実行が出来ません。これをチェックしないと、makeして作ったファイルをCDTが有効なバイナリと認識しません。
DOSなんかから実行することは出来ます。

で、プロジェクトにCでテキトーなファイルを作って、[makefile]という名前でファイルを追加します。俺はMakefileサッパリ知らないんでダメダメなんですが、とりあえずテストにはこんなんを使用。

test.exe: test.c
gcc -o test.exe test.c*2

次に、プロジェクトを右クリック -> Makeターゲットの作成。名前とかはそのまんまで、ビルド・コマンドにmingw32-make*3とします

で、プロジェクトを右クリック -> Makeターゲットのビルド、でさっき作ったターゲットを選んでビルドします。コンパイルエラーはともかく、コンパイルできないのはパスがとおってないとかそういう設定ミスだと思うんで再チェック。

そして実行。起動構成作るやり方はJavaのそれと似たようなもんです。

構成からC/C++ローカルを選んで新規ボタン。[メイン]のプロジェクト、C/C++アプリケーションにはさっきmakeして作ったexeファイルを指定。[環境]にPATH=C:\MinGW\binを通します。これで実行できる・・・ハズ。

プロジェクトと起動構成の両方にイロイロ設定が必要なんでメンドイですな。

printfが動かない?

イマイチC言語わかってないのでダメなんですが、printf出力がEclipseのコンソールに出ないことがあります。

対処方法は、ここに書かれてるようにfflush()を呼ぶこと。詳しいことは省きますが、ストリーム出力の基本的なとこです。

・・・でもウチの環境だと出たり出なかったりするのは何故なんだろう。

*1:MinGWの場合

*2:gcc...の前はタブなのに注意

*3:MinGWの場合