| じゃあ、一回目ということで、今回は何をするんだ? |
| 今回は、コンパイルを成功させるわ。 |
| コッペパンって味気なくてあんまり好きじゃないんだけどな。 |
| コとパしかあってないぜ… |
|
コンパイル、よ。 D言語はプログラミング言語のひとつなのだけど、これは機械には直接理解できないものなの。 機械に理解できるように翻訳してあげることがコンパイルよ。 |
| ………………………。 |
| ………まぁ、この辺は無理に理解しなくてもいいわ。 |
| D言語には公式のPhobosと、コミュニティの作ったTangoの2つの標準ライブラリがあるけど、どっちを使うつもりなんだ? |
| この講座ではTangoよ。 |
| 団子か。 あれは甘いから好きだ。 |
| 食べ物のことしか頭にないのか。 |
| まぁ、この辺は特に意識しなくてもいいと思うわ。 |
| 本当に強引に教える気なんだな……… |
| Tangoは日本語の資料がほとんどないからね。 私の講座がいい資料になればいいと思うわ。 |
| じゃあ、とりあえず今回の流れを説明してくれ。 |
| 今回はこんな流れで行こうと思うわ。 |
| dmdとか、dsssってなんだ? |
| dmdはコンパイルをするための道具、dsssはそれを簡単にするための道具よ。 |
| ふ~ん。 |
| じゃあまずは1番の、dmdとTangoのインストールだな。 |
|
初めに言っておくけれど、今から私が説明するのは、すでにPhobosをインストールしている人には使えない方法よ。 切り替えて使うこともできるのだけど、それはまたの機会に説明するか、誰かに丸投げすることにするわ。 |
| どちらにしろ、今のところどちらか片方しか使えないのだから、今はこれでいいわよね。 |
| よくわからないけど、大丈夫なのか? |
| この講座でやることに関しては問題ないはずよ。 |
| とりあえずdmdとTangoはどこから持ってこれるんだ? |
|
Tangoの公式ページは http://www.dsource.org/projects/tango ここよ。 |
| ……これ何語? |
|
英語よ。 ここの、 Downloads っていうところをクリックして次のページに行って、 "Binaries plus Source" のところにある DMD っていう場所に行くの。 |
| リンクが張られているところは赤くなっているからすぐにわかるな。 |
| "Download Tango for DMD" …何て読むの? |
| DMDのためのTangoのダウンロードっていう意味だ。 |
| "current release as a zip" ってところの、zipにリンクが張ってあると思うから、そこをクリックして "tango-0.98-bin-win32-dmd.1.014.zip" というファイルをダウンロードするのよ |
| このファイル名は後々バージョンが変わったら別のになりそうだな。 |
| そうね。 |
| ダウンロードしたぞ。 |
| ダウンロードできたら解凍して。 |
| かいとう? |
| まぁそのくらいの知識はほしいところだな。 D言語とは関係がないことだからな。 チルノの分は私がやろう。 |
| 解凍したら、次のようなファイルやフォルダが出てくるはずよ。 |
| でてきた。 |
| 一応形式上言っておくが、LICENSEとREADME.txtには目を通しておいたほうがいいな。 |
| そうね。 |
| ……これ何語? |
| 英語。 まぁ、後で暇があったらにらめっこしな。 |
| できてたファイルやフォルダは、 |
| っていう感じに配置するの。 |
| 4つだけでいいの? |
| 最低限、これだけあればなんとかなるわ。 |
|
マイコンピューターから、Cドライブをダブルクリックして入って、右クリックして新規作成→フォルダ そしたら「新しいフォルダ」から「D」っていう風に名前を変える。 |
| 「D」フォルダのの中に移動して、さっき解凍して出てきたフォルダをドラッグアンドドロップやカット&ペーストを駆使して移動するの。 |

| こんな感じだな。 |
| できたっ |
|
つぎは、「パスを通す」と呼ばれる作業をするわ。 マイコンピューターを右クリックしてプロパティをみて。 そこの、「詳細設定」のタブのところに、「環境変数」っていうのがあるわね。 |

| うん、あった。 |
| それをクリックして、こういう画面を出して。 |

| システム環境変数ってところに「Path」ってのはある? なければ新規で変数名「Path」というのを作ってね。 |
| あった。 |
|
あったらそれをダブルクリックするの。 そこの、変数値っていうところの一番最初に、「C:\D\bin;」って追加して。 最後の ";" (セミコロン) を忘れちゃだめよ。 |

| こうなったか? |
| うん、できた。 |
| そしたらOKを押して「システム変数の編集」「環境変数」「システムのプロパティ」のダイアログを閉じていくの。 |
| これでパスは通ったはずよ。 |
| これで終わり? |
| dmdとTangoのインストールはね。 |
| あれ? 今インストールしたのって、Tangoってやつじゃないの? dmdっていうのはいつやったの? |
| さっきのでdmdのコンパイラも一緒にインストールできたのよ。 |
| 本当に? |
| ここまでの内容がちゃんとできているかの確認は、Windows+Rで名前を指定して実行のダイアログにcmdと打ち込んで出てきたコマンドプロンプトにdmdと打って実行してみて、実行できてヘルプが表示されたら成功しているわ。 |
| ……………………… |
| ………めんどうだから詳しい説明は省くわね。 |
| 次は2番目、dsssのインストールだな。 |
| 魔理沙、大変よ、もう挫けそうだわ……… |
| いや、もうちょっと頑張ってくれよ……… |
|
しょうがないわね…… やることはさっきと似たようなことよ。 |
| パスも通すの? |
| いいえ、通さないわ。 |
| じゃあ楽だな! |
|
まずは公式サイトにいってみて。 http://www.dsource.org/projects/dsss ここよ。 |
| う…また英語? |
| 英語だな。 |
|
DSSS 0.65 has been released, and is available from http://svn.dsource.org/projects/dsss/downloads/0.65 ってなってる所の、URL部分をクリックするの。 |
| これまたバージョンごとに変わりそうなURLだな。 |
|
そうね、トップからたどったほうが賢明でしょうね。 それで、 "dsss-0.65-dmd-win.zip" ってのをダウンロードして。 |
| したよ。 |
| できたら解凍して。 |
| 今度はできるよ! 回答! |
| 解凍だけどな。 |
| ? |
| 解凍したら "dsss-0.65-dmd-win" っていうフォルダがあるでしょう? |
| うん。 |
| このフォルダの中身を、さっき作った「D」フォルダにカットアンドペーストとかを使って入れてしまって。 |
| binとかetcとかのフォルダを? |
| そう。 |
| ぜんぶ? |
| 全部。 |
| …うわ、このフォルダはがいに 'bin' フォルダが存在しますって! |
| すでに、な。 |
| 「すべて上書き」してしまって大丈夫よ。 |

| こんなもんだな。 |
| できたよ。 |
| じゃあこれでdsssのインストールは終わりよ。 |
| これだけ? |
| これだけよ。 |
| 本当に簡単だな。 うん、あたいってば最強。 |
| ……………………… |
| 3."Hello, world."プログラムの作成 |
| はろーわーるど |
| そんなゲームあったな。 |
|
ゲームの話じゃないわ。 "Hello, world." って表示するだけのプログラムを組むのよ。 |
| プログラムを組む? |
| えらい基本的な質問だな。 |
| ……パソコンにやってほしいことをお願いするのよ。 |
| じゃあ、イチゴ大福が食べたい! |
| そりゃむりだ。 |
| むりなの!? |
| ……とにかく、始めましょう。 |
| はーい |
| まず、さっきの「D」フォルダを開いて |
| "C:\D" だな。 |
|
そこに、新しく「project」フォルダを作って。 面倒だから以後この中にプログラムを入れていくわね。 |
| つくった |
| その中に「test」というフォルダを作って、その中に移動して。 |
| したよ。 |
| じゃあ、そのフォルダを開いたまま、一回ほうっておいて、ノートパッドを開いて。 |
| ノートパッドは人にもよるけど、だいたいは スタート>プログラム>アクセサリ>メモ帳 で開けるな |
| ノートパッドを開いたら、下のテキストをコピーして、ノートパッドにペーストして。 |
import tango.io.Stdout;
int main(){
Stdout("Hello, world.").newline;
return 0;
}
| やった。 |
| そしたら、ノートパッドの、 ファイル>名前を付けて保存 で開いたダイアログで、 "C:\D\project\test" を開いて |
| ちょっと設定がややこしいのだけれど、ファイル名に「main.d」ファイルの種類は「すべてのファイル」文字コードは「UTF-8」に設定して保存して。 |

| こんなかんじだな |
| ……できた。 |
| これで"Hello, world."プログラムの作成はおわりよ。 |
|
もう終わりか。 ところでさっきの『UTF-8』ってなに? |
| 文字コードのことよ。 わからなくても、これで保存すれば問題ないはずよ。 |
| ふ~ん。 |
| 4番目。 コンパイル。 |
| この辺の操作はWindowsの基本的な操作に近いのだけれど…… |
| でもコンソールなんて使わない人は全く使わないぜ? |
| それもそうね。 |
| コンソメ? |
| コンソール。 |
| コーンポタージュ |
| なぜ遠ざかる…… |
|
………はじめるわよ? スタートから、プログラム、アクセサリっていう風にたどっていって、コマンドプロンプトっていうやつを選んで。 |
|
ところで魔理沙。 あたい、字が読めないんだけど。 |
| さっきまで読めてたじゃないか。 |
| それもそうか。 うん、読める。 |
| 本当にノリだけで生きているのね。 |
| この辺の操作はWindows+Rでファイル名を指定して実行を出して、cmdって打ち込む操作と同じ意味だよな。 |
| そうだけど、さっきチルノがフリーズしたからわかりやすく説明しているのよ。 |
| 以外に親切だな。 |
| だしたよ。 |
| そしたら、コマンドを打ち込んで、カレントディレクトリを移動するのだけれど……そんな事を言っても…… |
| ……………………… |
| …ってなるから、とりあえずこのコマンドだけ打ち込めばいいわ。 |
cd C:\D\project\test
| これでいいのか? |
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Chirno>cd C:\D\project\test
C:\D\project\test>_
| 大丈夫よ。 |
| これでカレントディレクトリが「C:\D\project\test」に移動したんだな。 |
|
じゃあこれからコンパイルをするわよ。 さっき作ったファイルが、「main.d」だったわね。 |
| そうだっけ? |
| そうだよ。 |
| だったらここではこういう風に入力してみて。 |
dsss build main.d
| わかった。 |
C:\D\project\test>dsss build main.d
main.d => main
+ C:\D\bin\rebuild.exe -Idsss_imports\ -I. -S.\ -IC:\D\include\d -SC:\D\lib\ -I
C:\D\include\d -SC:\D\lib -oqdsss_objs main.d -ofmain
WARNING: Module main.d does not have a module declaration. This can cause proble
ms
with rebuild's -oq option. If an error occurs, fix this first.
C:\D\bin\link.exe dsss_objs\nmd_main+dsss_objs\tango-io-Stdout+dsss_objs\tango-i
o-Print+dsss_objs\tango-io-model-IBuffer+dsss_objs\tango-io-model-IConduit+dsss_
objs\tango-text-convert-Layout+dsss_objs\tango-text-convert-Utf+dsss_objs\tango-
text-convert-Float+dsss_objs\tango-text-convert-Integer+dsss_objs\tango-io-Conso
le+dsss_objs\tango-sys-Common+dsss_objs\tango-io-Buffer+dsss_objs\tango-io-Devic
eConduit+dsss_objs\tango-io-Conduit,main,,user32+kernel32/noi+.\\+C:\D\lib\\+C:\
D\lib\+tango.lib+tango.lib;
C:\D\project\test>_
| ……うわ、なんかいっぱい出た! |
| それは成功している証拠よ。 |
| でも、WARNINGってでてるぜ? |
| わーにんぐ |
| 警告っていう意味だ。 |
| けいこくって何 |
| 危険な状態、異常状態、ピンチ。 そんな時に出るメッセージ。 |
| それは、本当ならさっきの"Hello, world."プログラムの、一番先頭に |
|
って打ち込んだほうがよかったのだけれども、あまり気にしなくてもいいところだから、省略したの。 そのせいで出た警告よ。 |
| 大丈夫なのか? |
|
少なくとも、今回は大丈夫よ。 問題なのは、こういうような表示になったときね。 |
main.d => main
+ C:\D\bin\rebuild.exe -Idsss_imports\ -I. -S.\ -IC:\D\include\d -SC:\D\lib\ -I
C:\D\include\d -SC:\D\lib -oqdsss_objs main.d -ofmain
main.d(5): found 'return' when expecting ';' following 'statement'
Command C:\D\bin\rebuild.exe returned with code 1, aborting.
C:\D\project\test>_
| さっきよりも文字が少ないぞ。 |
| でも、一番最後に aborting. ってなっているでしょう? |
| あぼーてぃんぐ? |
| やばいから途中でとめましたってことだ。 |
| やばいのか。 |
|
やばいのよ。 この表示は、こんなプログラムを書いたときにおこったのだけど、"Hello, world."プログラム との違いがわかる? |
import tango.io.Stdout;
int main(){
Stdout("Hello, world.").newline
return 0;
}
| 同じじゃないのか? |
| 違うわ。 よく見比べてみて。 |
| あっ、4行目の一番最後に ";" っていう記号が入ってない! |
| そうね、エラーの表示を見てごらんなさい。 |
main.d(5): found 'return' when expecting ';' following 'statement'
| ってあるでしょう? これは、 ";"(セミコロン) がないからここにreturnが来るのはおかしい…っていうことなのよ。 |
| なるほど。 |
| ともかく、あなたはさっきコンパイルに成功したでしょう? |
| したのか。 |
| エクスプローラーのほうで確認してごらんなさいな。 |

| うおあー!? なんか増えてる! |
|
コンパイルに成功するとこんな風になるからね。 *.exeファイルと、*.mapファイルができて、dsss_objsフォルダができるの。 |
| じゃあなんだ、これは大丈夫なのか。 |
| ええ。 これでコンパイルは終わりよ。 |
| じゃあ次は最後。 5番、実行。 |
| さっきのコマンドプロンプトに戻って、こう入力してみて。 |
main
| お! Hello, world. ってでた! |
| これだけ。 これが「実行」よ。 |
| さっき新しく増えてた "main.exe" をそのままダブルクリックじゃダメなの? |
| 一瞬だけ黒い窓が開いて、すぐに閉じちゃうわよ。 やってごらんなさいな。 |
| あ、ほんとだ。 |
| だから、基本的にはコンソールから打ち込むのがいいと思うわ。 |
| なるほど。 |