D言語環境の構築

Index

  1. D言語環境の構築
    1. Dコンパイラの入手
    2. 環境変数の登録
    3. サンプルプログラムの実行
  2. PlatformSDK
    1. PlatformSDK本体の入手
    2. windows.h for Dの入手
  3. 簡単なD言語プログラム
    1. 下準備
    2. ソースを書く
    3. コンパイルして実行する
  4. 参考リンク

D言語環境の構築

Dコンパイラの入手

D言語コンパイラはその開発元であるDigital Marsが出しているものとオープンソースで開発されているものがあります。ここではDigital MarsのD言語コンパイラを使用するので、Digital MarsD言語のページから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
  

PlatformSDK

Digital MarsのDコンパイラにはデフォルトでWin32APIを使うためのライブラリが同梱されていますが、これは少し古かったり、完全ではないため全てのWin32APIを使うことができません。そこで、最新版のライブラリや全ての関数をportingしたライブラリを使用します。

PlatformSDKを入手する

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形式に変換するを参考にしてください。

windows.h for Dを入手する

先にも書きましたが、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言語プログラム

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>
  
Copyright © 2004 Moon moon@users.sourceforge.jp