0.前提条件
■Meadow(私の場合は3.0)がインストールされていること。
1.背景と狙い
■今後、簡単な数値シミュレーションのニーズが増えそうであり、できるだけ軽いプログラミング環境を作っておきたかった。
■とにかく軽くて、どのプラットフォームでも使えて、そして、もうこれ以上、私は、プログラミングの勉強をしたくなかった(C++でラストにしたい)。
■GUIなんぞには興味はなく、I/O系を使うこともないだろう(せいぜいsocketI/Oが条件)。またJava VMやJava開発環境は、私には正直「分からん」
■Perl, Rubyのスクリプト言語が良いことは良く理解しているが、知らない使い方を、その都度調べるのが面倒。
2.目的
■結局、UNIXの創世記から存在し、殆どのプラットフォームで利用可能で、今なお健在のGNU C Compiler(GCC)が、私には一番ラク。
■これをMeadow上のGDBの環境で使えれば、それで、私にはパラダイス。
3.開発環境構築
■「Windowsレジストリに登録されない」との一言で、cygwinをやめて、mingwにすることに決定。これならUSBメモリで開発環境を持ち歩ける(らしい)
(Step.1)http://sourceforge.net/projects/mingw/files/Installer/mingw-get/ ここ からダウンロードしてくる。私は、今回は「mingw-get-0.4-mingw32-alpha-1-bin.zip」をダウンロードした。
(Step.2)解凍するとディレクトリができるが、ディレクトリのトップが長いファイル名のままなので、"MigGW"などに替えて、C:\Users\ebata\mingwにもってきた。
(Step.3)C:\Users\ebata\mingw\binをpathを設定する。
(Step.4)C:\Users\ebata\mingw\binに移動して、"mingw-get list"と入力(時間がかかる)
(Step.5)mingw-get install gcc g++ mingw32-make
(Step.6)mingw-get install msys-base
(Step.7)mingw-get install gdb
(2016/04/04加筆)
スレッドプログラミングが行いたい場合は、以下を追加。
(Step.8)mingw-get install mingw32-libpthreadgc
(Step.9)mingw-get install mingw32-libpthreadgce
(Step.10)mingw-get install mingw32-pthreads-w32
(どれか1つは失敗したような気がするが忘れた)
このままpthreadのプログラムのコンパイルを試みると、
"c:\mingw\include\pthread.h:320:8: error: redefinition of 'struct timespec'"
などと喧しく言われることがある。
面倒くさかったので、C:\mingw\include\parts の time.hの、struct timespec をまるごとコメントアウトしたらコンパイルが通った
(2016/04/04加筆ここまで)
私の場合、Meadow側の設定は不要だった。
4.実行環境
==============================
#include int main ()
{
printf("Hello, world\n");
printf("2:Hello, world\n");
printf("3:Hello, world\n");
}
==============================
を、test.c と名前を入れて、
gcc -g test.c でコンパイル。
M-x gdbと入力すると、多分"gdb --annotate=3 a.exe"と表示されるので、そのままデバック環境を実行。ソースコードと連動して動く(あたりまえだが、20年前の環境が再現されて感動する)。
5.主要な操作
基本的には、ブレークポイントを設定してrunをする。
■ソースコート上でブレークポイントのセット
c-x space
■ソースコート上でブレークポイントの削除
該当行で C-x C-a C-d
ブレークポイントバッファの該当箇所で D(大文字)
マウスのクリックでも可能。
■n,sでステップ毎に進む。
以上