Linuxで動作するCプログラムのデバッグ環境構築2

Linux
スポンサーリンク

前回のつづきから

前回の「Linuxで動作するCプログラムのデバッグ環境構築1」からの続きからとなります。今回は、Eclipseを使って、Cのプロジェクトを作ってコンパイルしてみるところまで行ってみたいと思います。

さっそく解説をはじめます。今回は図をふんだんに使って分かりやすく説明します!

プロジェクトを作成しよう

プロジェクトを新規作成

Eclipseを開きましたら、左のプロジェクトの部分で右クリックをしましょう。新規からプロジェクトを追加していきます。

プロジェクトタイプを設定する

今回プロジェクト名は「Sample」と名付けます。これがプロジェクトエクスプローラに表示されるタイトルになります。また勉強のために、空のプロジェクトを選択します。ツールチェーンは、このLinux環境で実行したいのでLinux GCCを選びます。

最後に「完了(F)」ではなく「次へ(N) >」を選んでください。

使用する構成を選択する

構成を選択できます。構成というのは、どのようにコンパイルするかといった設定です。デフォルトでDebugとReleaseがあります。それぞれデバッグ向き、リリース向きとなっています。今回勉強のために後で再設定を行う予定ですが、一旦「Debug」にのみチェックをうちましょう。必ず1つは設定を持つ必要があるため、チェックを打たないという選択肢はありません。

ここで、「完了(F)」を押して、ウィザードを終わらせます。

ソースコードを準備しよう

ファイルを登録する

今回は、例として下記のようなファイル構成にします。プロジェクト・エクスプローラ内で右クリックでファイルやフォルダを作成していきましょう。

次のようなフォルダ構成にしてみました。

Cのソースコード例

main.c は、オーソドックスに次のようにしました。

#include <stdio.h>

int main(void) {
	printf("Hello world !\n");
	return 0;
}

makefileのコード例

makeファイルも、オーソドックスに次のようにしました。

注意点として、この後デバッグをするために、コンパイルオプションとして「-g」と「-O0」が必ず必要となります。

また、実行ファイル名を「Hello」としました。設定でデフォルト値に「all」と「clean」が存在しており、これらのコマンドが使用されます。「all」「clean」が使えるようにしておきましょう。

Target  = main.c
ExeName = Hello

all : $(ExeName)

$(ExeName) : $(Target)
	gcc -g -O0 -Wall -o $(ExeName) $(Target)

clean :
	rm -f $(ExeName)

プロジェクトの設定をしよう

プロパティを開く

先ほどはウィザードで初期設定を行いましたが、ここで改めて設定を構築しなおしていきます。ファイルメニューから「プロパティ(R)」を選択します。

構成管理を編集する

「C/C++ ビルド」で設定が行えます。

最初にウィザードで、構成の「Debug」にチェック入れました。つまり、この最初に表示されたのが、「Debug」の初期構成となっています。

今回勉強のために、構成の名前を変えてみましょう。「構成の管理…」を押します。

構成の名前を変更する

Debugを選択して、「名前変更…」で「MyCompile」と変更して「OK」を押してみます。これで自分で名前をつけた構成となります。

ビルド時の動作を設定する

EclipseではMakefileを自動生成する機能がありデフォルトで有効となっていますが、今回は自分でMakefileを管理するため「自動的にMakefileを作成(G)」のチェックを外します。また、「ビルド・ディレクトリー(D)」でMakefileがおいてあるディレクトリを設定します。

設定が終わったら、「適用(A)」を押しましょう。

実行時の設定を新規作成する

今度はコンパイルが終わって実行ファイルが作成された後の実行方法の設定を行います。
「実行/デバッグ設定」で、「新規(N)…」を選択します。

実行時の設定を変更する

実行する手法に名前をつけられるので、「MyExecute」としました。今回、makefileにコンパイル後の実行ファイル名は「Hello」と記載しました。従って、makefileが実行されると「MyProcess/Hello」という実行ファイルが作成されます。ここには、その実行ファイルのパスを「C/C++ アプリケーション」に記述します。ここに記載されたパスが、実行ボタンを押すと実行されるようになるためです。

プロジェクトの欄は、この起動構成プロパティは、何のプロジェクトの起動構成プロパティかという設定です。今回は、Sampleプロジェクトなので「Sample」とします。

設定を終えたら「OK」を押します。

設定を終了させる

これで設定の完了したので「OK」を押します。

コンパイルをしよう

ビルドする

「プロジェクト(P)」メニューの「プロジェクトのビルド(B)」を選びましょう。

ビルド結果を確認する

下のコンソールに「Build Finished」が表示されたら成功です。左側のプロジェクトエクスプローラーにも、実行ファイルが作成されていることが確認できます。

実行とデバッグをしよう

ビルドした実行ファイルを実行する

緑色の▲ボタンを押すと、実行できます。簡単でしょ!

コンソールにはしっかり「Hello world !」と表示されます。

ビルドした実行ファイルをデバッグする

虫(bug)のマークを押すとデバッグが行えます。

デバッグを中止したいときは、■を押して停止させます。

元のウィンドウ構成に戻すためには「ウィンドウ(W)」の「パースペクティブを開く(O)」から「C/C++」を選択します。Eclipseでは、ウィンドウやコントロールの位置などのプリセットをパースペクティブと呼びます。この操作を行うことで、デバッグ用のパースペクティブから元に戻すことが可能です。

おまけ

Makefileに渡す引数を設定する

今回は、変更しませんでしたが「振る舞い」でMakefileの引数も設定できます。デフォルトは先ほど説明したように、「all」と「clean」になっています。

includeパスを設定する

もし、ソースコード内でincludeするときに、別のライブラリのヘッダを参照している場合は、下記のインクルード設定で設定を行えます。

今回のようにMakefileを手動設定にしている時点で、ここの設定が誤っていてもコンパイルと実行は可能です。ただ設定が誤っていると、ソースコードエディタで注意がされてしまいます。

おわりに

おつかれさまです!いろいろEclipseをいじりながら無事を書き終わることができました。

では、また!

コメント

タイトルとURLをコピーしました