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

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


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

1

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

2

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

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

3

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

 


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

1

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

2

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

#include <stdio.h>

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

3

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)

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

1

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

2

「C/C++ ビルド」で設定が行えます。
最初にウィザードで、構成の「Debug」にチェック入れました。
つまり、この最初に表示されたのが、「Debug」の初期構成となっています。
今回勉強のために、構成の名前を変えてみましょう。「構成の管理…」を押します。

3

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

4

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

5

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

6

実行する手法に名前をつけられるので、「MyExecute」としました。
今回、makefileにコンパイル後の実行ファイル名は「Hello」と記載しました。
従って、makefileが実行されると「MyProcess/Hello」という実行ファイルが作成されます。
ここには、その実行ファイルのパスを「C/C++ アプリケーション」に記述します。
ここに記載されたパスが、実行ボタンを押すと実行されるようになるためです。
プロジェクトの欄は、この起動構成プロパティは、何のプロジェクトの起動構成プロパティかという設定です。
今回は、Sampleプロジェクトなので「Sample」とします。
設定を終えたら「OK」を押します。

7

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


コンパイルをしよう

1

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

2

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

 


実行とデバッグをしよう

1

緑色の▲ボタンを押すと、実行できます。簡単でしょ!
コンソールにはしっかり「Hello world !」と表示されます。

2

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

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


おまけ

1

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

2

もし、ソースコード内でincludeするときに、別のライブラリのヘッダを参照している場合は、
下記のインクルード設定で設定を行えます。
ただし、今回のようにMakefileを手動設定にしている時点で、
ここの設定が誤っていてもコンパイルと実行は可能です。
ただ設定が誤っていると、ソースコードエディタで注意がされてしまいます。


おわりに

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

では、また!

関連記事

  • Linuxで動作するCプログラムのデバッグ環境構築1Linuxで動作するCプログラムのデバッグ環境構築1 こんにちはー! 今回は、Linuxで動作するCのデバッグ環境の整え方をお話しします。 皆さんは、Raspberry PiとかのLinux上で動作するプログラムを作るときにどうしていますか、 Raspberry Pi 上で make […] Posted in Linux
  • Raspberry Pi 3 に CentOS 7Raspberry Pi 3 に CentOS 7 これまでも何度も Raspberry Pi を初期化していますが、 今回はサーバー運用に定評がある CentOS(for armv7hl) を入れてみました。 その時の設定メモです。 補足 armv7hl とは、文字通り ARMv7 向けかと思いますが、Raspberry Pi 3は、ARMv8 です。 なので、本来であれば […] Posted in Linux
  • Debian GNU/Linux に色々インストールするDebian GNU/Linux に色々インストールする 以前、 Linuxで動作するCプログラムのデバッグ環境構築1 Linuxで動作するCプログラムのデバッグ環境構築2 の2回に渡って作成したDebian環境なので、 他に開発が便利になるように色々活用してみましょう! ターミナルをカラフルにする .bashrc を編集します nano .bashrc 開くと、 # uncomment for a colored […] Posted in Linux
  • Raspberry Pi はじめました (第5回) – DDNS編Raspberry Pi はじめました (第5回) – DDNS編 Raspberry Pi はじめました (第4回) – はじめから の続きです。 8. フォルダでアクセスできるようにしよう 8-1. やっぱりWindowsPC上からアクセスしてファイル編集したい 8-2. そこで、これも以前にあったように、sambaをインストール sudo apt-get install samba 8-3. 設定ファイルを編集 sudo […] Posted in Linux
  • Raspberry Pi はじめました (第4回) – はじめからRaspberry Pi はじめました (第4回) – はじめから 今まで ・Raspberry Pi はじめました (第1回) ・Raspberry Pi はじめました (第2回) – Arduino 用スターターキットを買って分かったこと ・Raspberry Pi はじめました (第3回) – […] Posted in Linux
  • Raspberry Pi はじめました (第2回) – Arduino 用スターターキットを買って分かったことRaspberry Pi はじめました (第2回) – Arduino 用スターターキットを買って分かったこと 今回は、Arduino 用スターターキットを買って分かったことをまとめます。 ソフトウェア屋さんの目線から書いてます。 先週、Raspberry Pi を始めました。 それで、 Arduino 用スターターキット(Arduinoをはじめよう 互換キット 20 in […] Posted in Linux