D言語コンパイラはその開発元であるDigital Marsが出しているものとオープンソースで開発されているものがあります。ここではDigital MarsのD言語コンパイラを使用するので、Digital MarsのD言語のページからWin32版のD言語コンパイラを入手します。これだけではコンパイルしか出来ないのでlinker and utilitiesも一緒にダウンロードします。
2つのファイル、dmd.zipとdmc.zipをダウンロードし終えたらその2つのアーカイブを解凍します。dmd.zipとdmc.zipで同じディレクトリがありますが、それは上書きして大丈夫です。例えばC:\に解凍したとすれば、以下のようなディレクトリ構成になっているはずです。
C:\ +-dm | +-bin | +-html | +-images | +-include | | +-sys | | +-win32 | +-lib +-dmd +-bin +-html | +-d +-lib +-samples | +-d +-src +-dmd +-phobos +-etc +-internal +-std +-c +-typeinfo +-windows
コンパイルするためにWindowsにPathを通さなくてはなりません。WindowsXPであれば、コントロールパネルのパフォーマンスとメンテナンスからシステムを選び、詳細設定タブにある環境変数ボタンを押します。環境変数設定ダイアログが表示されるので、ユーザー環境変数から新規を選び、変数名にPATH
、値にD言語を解凍したディレクトリC:\dm\bin;C:\dmd\bin
を設定します。
また、別の方法として以下のようなバッチファイル(denv.bat)を作る方法もあります。コンパイル前にこのバッチファイルを実行するとPATHが通ります。
@echo off
path = %path%;C:\dm\bin;C:\dmd\bin;
D言語環境を構築するには他のサイトも参考にするとうまくいくでしょう。
ここまでの準備が整ったらD言語ソースをコンパイルし、実行することができます。コマンドプロンプトを開き、d:\dmd\samples\d
に移動し、shell all.sh
を実行してください。サンプルプログラムが正常に動けばインストールは大丈夫です。
C:\>cd \dmd\samples\d C:\dmd\bin\samples\d>shell all.sh
Digital MarsのDコンパイラにはデフォルトでWin32APIを使うためのライブラリが同梱されていますが、これは少し古かったり、完全ではないため全てのWin32APIを使うことができません。そこで、最新版のライブラリや全ての関数をportingしたライブラリを使用します。
Win32APIを使うためにMicrosoftが提供している最新版のPlatformSDKがあります。但し、このライブラリはMicrosoftの新しいCOFF形式であるため、Digital Marsのリンカでは使えません。implibやVisualC++6.0付属のツールを使って古いCOFF形式に変換し、COFF2OMFでOMF形式に変換してやる必要があります。
MicrosoftのPlatformSDKのページからCoreSDKをインストールすれば最新のWin32APIが使えるようになります。
Visual C++のlink.exeとBorland C++のCOFF2OMFを使ってライブラリを変換するにはChristof Meerwald's Some Digital Mars C++ Informationを参考に、implibを使うにはD言語研究室の新しいCOFFからOMF形式に変換するを参考にしてください。
先にも書きましたが、dmd付属のwindowsモジュールは完全ではないため、より完全なモジュールを入手する必要があります。これは最新のPlatformSDKを使う、使わないに関わらず入れておいた方がいいです。
たくさんの人がwindows.hをportingしていますが、ここではY.Tomino氏のものを使います。D言語の四方山話からwindows.h for Dをダウンロードします。7-Zip形式で圧縮されているので、対応したアーカイバを使って解凍し、C:\dmd\src\phobos\win32
に全てコピーします。最終的に以下のようなディレクトリ構成になればOKです。
C:\ +-dm | +-bin | +-html | +-images | +-include | | +-sys | | +-win32 | +-lib +-dmd +-bin +-html | +-d +-lib +-samples | +-d +-src +-dmd +-phobos +-etc +-internal +-std | +-c | +-typeinfo | +-windows +-win32 +-ansi
D言語に慣れるために、有名なHello, Worldプログラムを作ってみましょう。
まずは全てのプログラムを保存しておくディレクトリを作成します。ここではC:\programsとします。そこに更にhelloディレクトリを作ります。
C:\>mkdir programs C:\>mkdir programs\hello C:\>cd \programs\hello C:\programs\hello>
上で用意したC:\programs\helloディレクトリにhello.dというテキストファイルを作り、好きなテキストエディタ(xyzzyなり秀丸なりメモ帳なり)で開き、以下のコードを書き込みます。
お勧めはxyzzyとD-modeです。気力がある人はxyzzyの導入にもチャレンジしてみてください。D-modeはFrontPage - D言語研究から入手できます。xyzzyの基本についてはxyzzy日記がわかりやすいです。
import std.stream; // std.streamモジュールをインポート
// メイン関数
int main(char[][] argv) {
// 標準出力に文字列"Hello, World"を出力する
stdout.writeString("Hello, World");
return 0;
}
ソースを書き終えたら、コマンドプロンプトからコンパイルして実行します。以下のようになれば成功です。
C:\>cd \programs\hello C:\programs\hello\>dmd hello.d C:\dmd\bin\..\..\dm\bin\link.exe hello,,,user32+kernel32/noi; C:\programs\hello>hello Hello, World C:\programs\hello>