2. 開発環境

初出: 2007/01/13
最新: 2011/04/06
../表紙に戻る

目次 / 概要

現時点で、D のコンパイラは2つ存在します。

DMD - Digital Mars D
D言語の設計者 Walter Bright 氏による最新の実装。Windows/Linux/MacOSX/FreeBSD版があります。
GDC - D Programming Language for GCC
GCC(GNU Compiler Collection) をバックエンドとした実装。 多くのプラットフォームで動作します。

DMDのフロントエンド部のソースを使ってGDCが実装されるという形なので、 最新の変更はDMDの方に先に反映されることになります(数週間~数ヶ月差があることも)。

DSSS - D Shared Software System
Gregor Richards 氏による、D言語に特化した make のようなツールです。 Dのソースを読んで依存性解析を行い、必要なファイルだけ再ビルドしてくれます。 Javaに対するAnt的存在です。また、CPAN や RubyGems のような、 ライブラリ/パッケージ管理システムとしての機能も同時に備えています。 (最近あんまりアクティブではないかも)
統合開発環境
私の知る限りでは、まだ「これさえ使えば万事OK」レベルの完成したIDEはまだありません。 D 1.0 が出て一応言語仕様が固まったこれからに期待といったところです。 いくつか有望なプロジェクトを紹介します。
デバッガ
いくつかD言語で使えるデバッガがあります。

DMD - Digital Mars D

DMDは、D言語の設計者Walter Bright氏の実装したDコンパイラです。 以下からダウンロードできます。

インストール方法や使い方の詳細は↓この辺に。

また、コンパイラや標準ライブラリのソースコードは全てgithubで公開されています。

なお、現在 D 言語には D 1.x と D 2.x の二つの系統があります。1.x が安定版で、 2.x が新機能を続々追加する開発版です。違いや、どちらをダウンロードすべきかなど詳しくは 『D 2.x と D 1.x』 をご覧下さい。

Windows版注意

例えば C:\DevTools\DLang というフォルダにインストールしたい場合…

  1. dmd.バージョン番号.zip をダウンロード&展開します。
    dmd.zip には dmd\ と dm\ の2つのフォルダが入っています。
  2. これらのフォルダを C:\DevTools\DLang に移動します。 C:\DevTools\DLang\dmd と C:\DevTools\DLang\dm の2つのフォルダができる形になります。
  3. 環境変数 PATH を設定します。 [スタートメニュー]→[コントロールパネル]→ ([パフォーマンスとメンテナンス]→)[システム]→[詳細設定]→ [環境変数(N)] と開いて、システム環境変数 Path を [編集(I)] し、 元々の内容のうしろに次のように付け加えます。
    元の内容;C:\DevTools\DLang\dmd\bin;C:\DevTools\DLang\dm\bin

IDE等幾つかのツールは、C:\dmd と C:\dm にインストールされている状態を デフォルト設定としています。ルートディレクトリにものを置くのが嫌いでなければ、 C:\dmd と C:\dm に入れるのが一番無難です。

(07/01/18追記) 半角スペースのあるフォルダにインストールされていると、 色々とうまく動かないそうです。なんとも残念な制限ですが、Program Files や Document and Settings の下に入れるのは避けた方が良いでしょう。

使い方

コマンドプロンプトやターミナルを開いて

dmd

と打ち込んだときに特にエラーが出なければインストール成功です。 あとは例えば、hello.d というソースをコンパイルしたければ

dmd hello.d

と打てばよいです。hello(.exe) という実行ファイルができます。 スクリプトっぽくいきなりソースを実行したい場合は

rdmd hello.d

です。

アップデート

DMD のバージョンアップは、ダウンロードした dmd.zip を展開して上書きすればOKです。 でも、単に上書きすると設定ファイルwindows\bin\sc.iniなどまで初期状態で上書きしてしまうので、 設定変更している人はsc.iniだけは避けておくが吉です。

GDC - D Programming Language for GCC

GDCは、GCCバックエンドを使ったDコンパイラです。 以下から入手できます。

また、FreeBSDのports には登録されているようです。cygwin では、 Devel>gcc-gdc に入っています。Linux系のパッケージは、動きはあるようですが今のところ 誰もちゃんと整備してないみたいです。野良rpmは上記gdcgnuのページにあります。 (※2007/09/05追記: 対応するディストリビューションもぼちぼち出てきた模様。 Debian, Ubuntu) MacOS だと macports にありました。

Windows版注意

GDC を動かすには、あらかじめ MinGW をインストールしておく必要があります。MinGW Current か Candidate 向けのバイナリのみ 公開されているようなので、古い MinGW を使っている場合はアップデートが必要です。 MinGW は、ダウンロードページ からインストーラ(2007/01/26現在、MinGW-5.1.3.exeが最新)が入手できます。

gdcwin のインストール時には、MinGW のあるフォルダ("C:\MinGW" など)をインストール先として指定すると、 C:\MinGW\bin\gdc.exe 的な位置にgdcが入ります。

使い方

コマンドプロンプトやターミナルを開いて

gdc

と打ち込んだときに特にエラーが出なければインストール成功です。 あとは例えば、hello.d というソースをコンパイルしたければ

gdc hello.d

と打てばよいです。a.out か a.exe という名前の実行ファイルが生成されます。 GDCのコマンドラインの体系はGCC風になっています。 DMD互換のコマンドラインオプションを使いたい場合は、 gdc の代わりに gdmd コマンドを用います。(gdmdはPerlスクリプトなので、 使うにはPerlが要ります。Windowsの場合は ActivePerl など)。gdmd を使うには

gdmd hello.d

となります。hello(.exe) という実行ファイルができます。 また、gdmdが動く(Perlが入ってる)場合は、スクリプトっぽく いきなりソースを実行することができます。 DMDのzip書庫からdmd/bin/rdmdを引っこ抜いてきてPATHを通して

rdmd hello.d

です。

DSSS - D Shared Software System

DSSS は D 2.x の最新版では使えない可能性が多々あります。 1.x と合わせて使う(DMDより先にDSSSを入れてdsss net install dmdとすると対応バージョンのDMDが 自動的にインストールされます)か、ダウンロードするDSSSが公開された時点のDMD 2.xコンパイラと 共に使うと安定します。

ビルドツール、いわば「D言語に特化したmake」としての側面と、 パッケージ管理ツール、つまり「D言語版CPAN, Gems, PEAR/PECL」としての側面を兼ね備えたツールです。 入れておいて損はないと思います。

ダウンロードはこちら

使っているOSとコンパイラ(DMDかGDCか)に合わせたバージョンをダウンロードしてください。 適当な場所に展開して、binフォルダにパスを通せばインストール完了です。

使い方(ビルド)

ビルドしたいプロジェクトのルートディレクトリで

dsss build

と打てばOKです。ただし、Windows用のGUIアプリを作りたいときは

dsss build -gui

になります。依存関係のチェックはDSSSが自動で行うので、Makefile的 なものを別途用意する必要はありません。

ファイル1個だけビルドしたいときは、例えば hoge.d をビルドしたいときは

dsss build hoge.d

こんな感じでファイル名を指定します。その他細かい使い方は配布サイトのドキュメントをご覧下さい。

使い方(パッケージ管理)

DSSSのレポジトリに登録されているライブラリは、例えばmangoというライブラリは

dsss net install mango

こういうコマンド1発でインストールできます。登録されているライブラリの一覧は

dsss net list

で見ることができます。ローカルでビルドしたライブラリも

dsss build
dsss install

こんな感じでインストール。

Bud - Build Utility for D

筆者的に DSSS の方がおすすめです。 一応Budの解説も残しておきます。
DSSSは、static ifで条件importしている依存関係の解析が甘くて時々不便だったりするので… あと Bud は D 2.x の最新でも安定して動きます。

D専用makeのようなツールです。以下からダウンロードできます。

「インストール方法:Budでビルドしてください」という形で提供されている ライブラリが結構あるので、普段この手のツールを使わない方でも、 一応入れておくと便利なのではないかと思います。

Windows版注意

Windows用実行ファイルとして公開されているものは、 正確にはWindows版DMD用実行ファイルです。GDCをメインにする場合は使えません。 (※調査不足かもしれませんが、例えソースからビルドしても 色々処理がDMD依存になっていて、Win版GDCではまだ使えないような感じがします…。) DMDの場合は、

  1. バイナリをダウンロードし、bud.exeという名前にしてPATHの通ったところに置く
  2. \dm\bin\sc.ini (\dmd\bin\sc.ini ではなく!) を編集して、 LIB=...の行の末尾に
    ;%@P%\..\..\dmd\lib"
    と書き加える

という手順で使えるようになります。

その他の環境

ビルド済みバイナリは用意されていないようなので、 ソースからビルドする必要があります。 Dで書かれているので、先にDMDかGDCを入れておいてからmakeしてください。 その際、必ずbudから呼び出したいコンパイラでbud自体をコンパイルします。

使い方

プロジェクトのメインのソースファイルが main.d なプロジェクトをビルドしたいときは

bud main

と打てばOKです。ただし、Windows用のGUIアプリを作りたいときは

bud -gui main

になります。依存関係のチェックはBudが自動で行うので、Makefile的 なものを別途用意する必要はありません。 その他細かい使い方は配布サイトのドキュメントをご覧下さい。

統合開発環境

Descent

2008年2月現在、一番完成度の高いと思われる統合開発環境はこちら。

Descent
Eclipse Plugin として開発されているD言語用IDE。
強力なクラスメンバ補完機能や、import文の自動挿入、その他もちろんオートインデントや括弧の自動挿入、 リアルタイムのコンパイルエラーチェック等々、エディタとしては十分な機能を備えています。 ddbg をインストールして設定するとGUIでのデバッグも可能です。 現在のところ、プロジェクトのビルドに rebuild (DSSS の内部コンポーネント) が必要で、 このため、最新の D 2.x コンパイラとの相性は悪いことがあります。

インストールするには、まず Eclipse (3.2.1以上) が必要です。 Europa (3.3.x) なら大丈夫です。Eclipse のサイトには色々パッケージがありますが、どれでも OK です。 適当に、"Eclipse IDE for Java Developers" 辺りがスタンダードでよいのではないでしょうか。

あとは、 Descent のサイトの手順 (1) (2) (3) (4) 通りで行けます。

その他のプロジェクト

いくつか有望なプロジェクトを紹介します。

Code::Blocks
元々はC/C++用IDEですが、最近のNightly Build版でDMDとGDCに対応しました。 ⇒ Nightly Build の ダウンロードページ
SkyIDE
これも最近Dに対応したC/C++用IDEらしいです。
Poseidon
Dで実装されたオリジナルのD言語用IDEです。軽くていい感じ。
VSpluginD
rieslingさん による、Visual Studio 2005 でDの開発をするためのプラグインです。
GDC with Xcode
gdcmacプロジェクトによる。MacOS X 標準の開発環境 Xcode がD言語対応になります。

デバッガ

どのデバッガを使用する際も、デバッグ対象のプログラムに情報を埋め込むために、 コンパイル時/リンク時に -g オプションをつけるようにして下さい。

WinDbg

Windows版 DMD に付属のデバッガです。マニュアル に書かれているように

> windbg プログラム名.exe

でWinDbgが起動し、出てきたコマンド窓に

> g _Dmain

と打ち込むと実行開始してmainの先頭で止まります。あとはステップ実行するなり

gdb

Linux等では、GNU Projectによるデバッガ gdb でデバッグできます。 詳しくは gdbのマニュアル 等をどうぞ。 使い方は C/C++ を gdb でデバッグするときと特に変わりません。

ddbg

Code::Blocksでの動作例 D言語用の新しいデバッガ ddbg が開発されています。 コマンドラインから直接使うこともできますが、Code::Blocks や Descent などGUIのIDEの デバッグ機能のバックエンドとして使うとより使いやすいです。

「../3.D言語各論」へ

presented by k.inaba (kiki .a.t. kmonos.net) under CC0