- 概要
- インストール
- 使い方
- コマンドラインスイッチの解説
- <filename>
- @<cmdfile>
- -c
- -cov
- -D
- -Dd<docdir>
- -Df<filename>
- -d
- -debug
- -debug=<level>
- -debug=<ident>
- -debuglib=<name>
- -defaultlib=<name>
- -g
- -gc
- -gs
- -H
- -Hd<hddir>
- -Hf<filename>
- --help
- -I<Path>
- -ignore
- -inline
- -J<path>
- -L<linkerflag>
- -lib
- -man
- -map
- -noboundscheck
- -nofloat
- -O
- -o-
- -od<objdir>
- -of<filename>
- -op
- -profile
- -property
- -quiet
- -release
- -run <srcfile> [args...]
- -unittest
- -v
- -version=<level>
- -version=<ident>
- -vtls
- -w
- -wi
- -X
- -X<filename>
- コマンドラインスイッチの解説
- 関連
- 逆リンク
- 付録
- 投票とコメント
概要
Digital Mars製のD言語コンパイラ
現在対応しているOSは以下の通り
- Windows
- Linux
- MacOSX
- FreeBSD
インストール
dmdのインストールにはいくつかケースが存在します。 目的に合ったものをインストールしましょう。
- 開発版 (Windows|Linux|MacOSX|FreeBSD)
開発版は、Dのバージョンが2.0系で、次回リリースに向けた開発中のバージョン、標準ライブラリがPhobosで、その他にはライブラリが含まれていないものです。
- メリット
- 開発中のプロジェクトに関しては、破壊的変更に非常に強い。常に最小のコストで最新のバージョンに追従することができる。
- 最新を追う楽しさがある
- 常に最新の機能が利用できる
- 開発中の機能を先取りして利用することができる
- デメリット
- エンバグを踏む可能性がある
- ライブラリが利用できないものが多い。ライブラリは一切使えない、あるいは自力で修正して使うしかないと考えた方がいい。最低限svnのtrunkからチェックアウトして利用できなければ難しい。
- 最新版 (Windows|Linux|MacOSX)
最新版は、Dのバージョンが2.0系の最新バージョン*1、標準ライブラリがPhobosで、そのほかにはライブラリが含まれていないものです。- メリット
- 最新を追う楽しさがある
- 常に最新の機能が利用できる
- 既知のバグは最も少ない
- 危険にさらされている個所が破壊的変更によりコンパイルできなくなることがあり、すぐに気付けるため安全。
- デメリット
- 常に最新のバージョンに更新し続けないと面白みはない
- 更新に破壊的変更が含まれる場合がある
- ライブラリが利用できないものが多い。ライブラリは一切使えない、あるいは自力で修正して使うしかないと考えた方がいい。最低限svnのtrunkからチェックアウトして利用できなければ難しい。
- 通常版(D2.0) (Windows|Linux|MacOSX)
通常版(D2.0)は、Dのバージョンが2.0系のαバージョン*1、標準ライブラリがPhobosで、そのほかにはライブラリが含まれていないものです。- メリット
- D2.0の機能を取り入れつつ、コンパイラを更新しない限り安定した開発が望める
- デメリット
- 最新ではなく、面白みが薄い。
- 仕様の定まりきっていない中途半端な状態のバージョンである
- 通常版(D1.0) (Windows|Linux)
通常版(D1.0)は、Dのバージョンが1.0系の安定バージョン*2、標準ライブラリがPhobosで、そのほかにはライブラリが含まれていないものです。- メリット
- ある程度仕様が枯れており、破壊的変更がほぼ無い。
- そのため、ある程度安定した開発が可能。
- デメリット
- 最新の機能は利用できない。
- 標準ライブラリ・ユーザーライブラリ問わず古く、重大なセキュリティーエラーでも放置されている可能性が高い。
- Tango版 (Windows|Linux|MacOSX)
Tango版は、DのバージョンがTangoリリース時の1.0系の最新バージョン*3、標準ライブラリPhobosが使えない代わりにTangoを利用でき、そのほかにはライブラリが含まれていないものです。- メリット
- Phobos(D1)を使えない代わり、より強力なTangoを利用できる。Phobos(D2)と比べると一長一短でありあまり利点とはいえないかもしれない。
- 言語仕様およびライブラリが枯れてきているため、破壊的変更は発生し難い。
- 安定的な開発が可能。
- デメリット
- バンドル版 (Windows|Linux|MacOSX)
バンドル版は、Dのバージョンが1.0系の安定バージョン*2、標準ライブラリがTango*6で、そのほかに以下のライブラリ及びツールが含まれているものです。- DWT 231 (based off of SWT 3.4)
- Derelict (DSSS Latest)
- Ddbg Debugger v0.11.3
- DDL (and utility apps)
- Arclib
- DAllegro 4.2.2.0
- Bud
- DCode Editor
- DDBI (with modifications to get Sqlite3 to work)
Windows版
- 必要なものをダウンロード・インストールします
- msysGit
- Google:msysGit
- (書き途中)
Windows版
- 必要なものをダウンロードします
- dmd.2.0XX.zip
- 公式のChangelogより、最も新しいバージョンをダウンロードしてください
- dmd.2.0XX.zipを解凍してインストール先に配置します。
以下のような構成になるようにしてください*8また、<install_dir>にはインストールするディレクトリ名が入りますが、この中に半角スペースが存在してはいけません。リンクの際にエラーが発生します。<install_dir>\dmd <install_dir>\dmd\windows <install_dir>\dmd\windows\bin <install_dir>\dmd\windows\bin\dmd.exe <install_dir>\dmd\windows\lib <install_dir>\dmd\linux <install_dir>\dmd\...
基本的には、
となるように配置するといいでしょう。C:\dmd\windows\bin\dmd.exe C:\dmd\linux C:\dmd\...
zipファイル内部に含まれているdmフォルダを<install_dir>\dmに上書きして保存します。 - PATHを通します。
<install_dir>\dmd\windows\bin にパスを通します。
パスの通し方は下記付録に記述します。
<通したいパス>を、 <install_dir>\dmd\bin や <install_dir>\dm\bin と読み替えてください。
なお、このパスを通す作業は、コマンドプロンプトからなどと言ったように、簡単な実行が行えるようにするために行います。1
dmd main.d
- 以上です
Linux版(Ubuntu)
情報求む |
- 必要なものをダウンロードします
- dmd_2.0XX_i386.deb
- 公式のChangelogより、最も新しいバージョンをダウンロードしてください
- debパッケージをsudoしてインストールします。
debパッケージは/usr/binにバイナリが配置されるので別途pathの設定は必要ありません。又リンカオプション等も あらかじめ用意された/etc/dmd.confの設定内容で問題ありません。
user1$~ sudo dpkg -i dmd_2.0xx_i386.deb
- 以上です
MacOSX版
Windows版を参考にzipをDLしてください.中にosxというMac用のディレクトリがあるのでdmd2/osx/binをシェルのPATHに追加して下さい.既に実行権限はついているので,rehashを行えばdmdコマンドが使えるようになります.
Windows版
- 必要なものをダウンロードします
- dmd.2.028.zip
- 公式のダウンロードページより、dmd.2.014.zipをダウンロードしてください
- dmd.2.028.zipを解凍してインストール先に配置します。
以下のような構成になるようにしてください*8また、<install_dir>にはインストールするディレクトリ名が入りますが、この中に半角スペースが存在してはいけません。リンクの際にエラーが発生します。<install_dir>\dmd <install_dir>\dmd\windows <install_dir>\dmd\windows\bin <install_dir>\dmd\windows\bin\dmd.exe <install_dir>\dmd\windows\lib <install_dir>\dmd\linux <install_dir>\dmd\...
基本的には、
となるように配置するといいでしょう。C:\dmd\windows\bin\dmd.exe C:\dmd\linux C:\dmd\...
zipファイル内部に含まれているdmフォルダを<install_dir>\dmに上書きして保存します。 - PATHを通します。
<install_dir>\dmd\windows\bin にパスを通します。
パスの通し方は下記付録に記述します。
<通したいパス>を、 <install_dir>\dmd\bin などと読み替えてください。
なお、このパスを通す作業は、コマンドプロンプトからなどと言ったように、簡単な実行が行えるようにするために行います。1
dmd main.d
- 以上です
Windows版
- 必要なものをダウンロードします
- dmd.1.030.zip
- 公式のダウンロードページより、dmd.1.030.zipをダウンロードしてください
- dmc.zip
- 公式のダウンロードページより、dmc.zipをダウンロードしてください
- dmd.1.030.zipを解凍してインストール先に配置します。
以下のような構成になるようにしてください*8また、<install_dir>にはインストールするディレクトリ名が入りますが、この中に半角スペースが存在してはいけません。リンクの際にエラーが発生します。<install_dir>\dmd <install_dir>\dmd\bin <install_dir>\dmd\bin\dmd.exe <install_dir>\dmd\... <install_dir>\dmd\lib <install_dir>\dmd\... <install_dir>\dm <install_dir>\dm\bin <install_dir>\dm\bin\dmc.exe <install_dir>\dm\...
基本的には、となるように配置するといいでしょう。C:\dmd\bin\dmd.exe C:\dmd\... C:\dm\bin\dmc.exe C:\dm\...
- dmc.zipを解凍してインストール先に上書きします。
zipファイル内部に含まれているdmフォルダを<install_dir>\dmに上書きして保存します。 - PATHを通します。
<install_dir>\dmd\bin 及び <install_dir>\dm\bin にパスを通します。
パスの通し方は下記付録に記述します。
<通したいパス>を、 <install_dir>\dmd\bin や <install_dir>\dm\bin と読み替えてください。
なお、このパスを通す作業は、コマンドプロンプトからなどと言ったように、簡単な実行が行えるようにするために行います。1
dmd main.d
- 以上です
Windows版
- 必要なものをダウンロードします
- tango-0.99.8-bin-win32-dmd.1.041.zip
公式のダウンロードページより、
current release as a zip
をダウンロードしてください。
現在Tangobosがバンドルされているものは提供されていない模様。Tangobosが必要な場合は別途ダウンロードして利用する必要がある。
- tango-0.99.8-bin-win32-dmd.1.041.zipを解凍してインストール先に配置します。
(解凍先のフォルダはtango-0.99.8-bin-win32-dmd.1.041ではなく、dmdとでも名前を変えたほうが扱いやすいかと思います。以下はそのように改名したものとして扱います)
以下のような構成になるようにしてください*8また、<install_dir>にはインストールするディレクトリ名が入りますが、この中に半角スペースが存在してはいけません。リンクの際にエラーが発生します。<install_dir>\dmd <install_dir>\dmd\bin <install_dir>\dmd\bin\dmd.exe <install_dir>\dmd\... <install_dir>\dmd\lib <install_dir>\dmd\... <install_dir>\dmd\import <install_dir>\dmd\import\tango <install_dir>\dmd\...
基本的には、となるように配置するといいでしょう。C:\dmd\bin\dmd.exe C:\dmd\bin\sc.ini C:\dmd\bin\link.exe C:\dmd\...
- PATHを通します。
<install_dir>\dmd\bin にパスを通します。
パスの通し方は下記付録に記述します。
<通したいパス>を、 <install_dir>\dmd\bin などと読み替えてください。
なお、このパスを通す作業は、コマンドプロンプトからなどと言ったように、簡単な実行が行えるようにするために行います。1
dmd main.d
- 以上です
Windows版
- 必要なものをダウンロードします
- dmd-win32snaphot-0.6.2.exe
- 公式のダウンロードページからEasy Dのプロジェクトのページに飛んでください。そのページの下のほうにあるDownloadのリンクからダウンロードします。
- インストーラを実行します。
- これで一応インストールは終了です。
- 次にコンパイルの確認をします。
- スタート>すべてのプログラム>Easy D>Compiler Shell を起動
- あとは通常のコマンドラインからコンパイルする方法と同様にコンパイルすることができます。
- 詳しくは HowTo/実行ファイルを作る などをご覧ください。
- ただし、 dmd main.d -L+tango-user-dmd.lib という感じで、-L+tango-user-dmd.libを利用して明示的にtangoのスタティックライブラリをリンクさせる必要があるようです。
- こんな感じになるはずです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Shell setup for Digital Mars D Compiling and Debugging build software: dsss build [-g] main_file.d (-g for debugging) debug software: ddbg exe_file.exe change which drive you're on: [Drive Letter]:\ eg. C:\ to change to C drive Microsoft Windows [Version 6.1.7000] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\> cd /D C:\dproject C:\dproject> dmd main.d -L+tango-user-dmd.lib C:\dproject> main.exe Hello, world! C:\dproject>
◀実際の画面
- 必要ならば、sc.iniを書き換えます。
- sc.iniを書き換えると、-L+tango-user-dmd.libを記述しなくともコンパイルを行うことが可能となります。
- <install_dir>\dmd\bin\sc.ini を以下のような内容に書き換えます。
sc.ini
1 2 3 4 5 6 7 8 9 10 11
[Version] version=7.51 Build 020 [Environment] ; LIB=%@P%\..\lib;\dm\lib LIB="%@P%\..\import\lib;%@P%\..\lib;%@P%\..\..\dm\lib" ;DFLAGS="-I%HOME%\common" "-I%HOME%\.." DFLAGS="-I%@P%\..\import" -version=Tango -defaultlib=tango-base-dmd -debuglib=tango-base-dmd -L+tango-user-dmd.lib LINKCMD=%@P%\..\..\dm\bin\link.exe
- 以上です。
コマンドラインスイッチの解説*9
dmdのヘルプ |
|
<filename>
直接ファイル名を指定します。ファイルの拡張子は下記表のいずれかとなっています。
拡張子 | 説明 |
*.d | D言語のソースファイル |
---|---|
*.dd | DDocのソースファイル |
*.di | D インターフェイスファイル |
*.obj | リンクしたい中間ファイル(オブジェクトファイル) |
*.lib | 検索対象にするオブジェクトコードライブラリ |
*.exe | 出力する実行ファイルの名前 |
*.def | 実行モジュール定義ファイル |
*.res | リソースファイル |
@<cmdfile>
レスポンスファイルを指定できます。コンパイラへの引数とスイッチを、テキストファイル <cmdfile> から読み込むことができます。
何回も実行する場合はレスポンスファイルに引数を記録しておいた方が良いでしょう。
例として以下にDWTを用いたプログラムのコンパイルに使うレスポンスファイルの一例を示します。ここでは拡張子を*.rspとしますが、拡張子は何でも構いません。
build.rsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
このレスポンスファイルを用いたコンパイル方法は以下。
1 |
|
-c
このコマンドラインスイッチを指定すると、リンクをしなくなります。つまり、実行ファイルは作られませんが、中間ファイル(objファイル)が生成されます。
分割コンパイルなどに利用します。
1 2 3 |
|
-cov
コードカバレッジ解析を有効にします。このコマンドラインスイッチをつけてコンパイルしてできた実行ファイルを実行する際にコードカバレッジ解析が行われます。コードカバレッジは、何回も実行されてパフォーマンスが要求される個所や、unittestのカバーしているところを明らかにします。
main.d
1 2 |
|
-unittest
ユニットテストを行います。このスイッチをつけて実行ファイルを生成した場合、その実行時にユニットテストが呼び出されます。この際にコードカバレッジも行われます。実行ファイルはユニットテストが失敗するとエラーメッセージを出して終了します。
逆リンク
- HowTo/分割コンパイルする (4132d) [ template ]
- Tools (3283d) [ ツール ]
Windows XP
- スタート
- 「マイ コンピュータ」を右クリック
- 「プロパティ」をクリック
- 「詳細設定」のタブをクリック
- 「環境変数」をクリック
- システム環境変数の「Path」をダブルクリック or Pathを選択した状態で編集ボタンをクリック
- 変数値のテキストボックスの先頭に、「<通したいパス>;」を追加する。
加えるパスの、最後のセミコロンは忘れてはいけません。
ex) C:\dmd\bin と C:\dm\bin にパスを通したい場合C:\dmd\bin;C:\dm\bin;C:\usr\local\bin;%SystemRoot%\system32;%SystemRoot%;
- 「OK」をクリックして、システム変数の編集を閉じる
- 「OK」をクリックして、環境変数を閉じる
- 「OK」をクリックして、システムのプロパティを閉じる
- 「OK」をクリックして、システムのウィンドウを閉じる
Windows Vista
- スタート
- 「コンピュータ」を右クリック
- 「プロパティ」をクリック
- 「システムの詳細設定」をクリック(左側にある)
- UACのダイアログが出るので「続行」をクリック
- 「環境変数」をクリック
- システム環境変数の「Path」をダブルクリック or Pathを選択した状態で編集ボタンをクリック
- 変数値のテキストボックスの先頭に、「<通したいパス>;」を追加する。
加えるパスの、最後のセミコロンは忘れてはいけません。
ex) C:\dmd\bin と C:\dm\bin にパスを通したい場合C:\dmd\bin;C:\dm\bin;C:\usr\local\bin;%SystemRoot%\system32;%SystemRoot%;
- 「OK」をクリックして、システム変数の編集を閉じる
- 「OK」をクリックして、環境変数を閉じる
- 「OK」をクリックして、システムのプロパティを閉じる
- 「OK」をクリックして、システムのウィンドウを閉じる
Windows 7
ほとんどWindows Vistaと変わりませんが、UACのプロンプトが出ませんでした。
- スタート
- 「コンピューター」を右クリック
- 「プロパティ」をクリック
- 「システムの詳細設定」をクリック(左側にある)
- 「環境変数」をクリック
- システム環境変数の「Path」をダブルクリック or Pathを選択した状態で編集ボタンをクリック
- 変数値のテキストボックスの先頭に、「<通したいパス>;」を追加する。
加えるパスの、最後のセミコロンは忘れてはいけません。
ex) C:\dmd\bin と C:\dm\bin にパスを通したい場合C:\dmd\bin;C:\dm\bin;C:\usr\local\bin;%SystemRoot%\system32;%SystemRoot%;
- 「OK」をクリックして、システム変数の編集を閉じる
- 「OK」をクリックして、環境変数を閉じる
- 「OK」をクリックして、システムのプロパティを閉じる
- 「OK」をクリックして、システムのウィンドウを閉じる
*1 2011/03/04現在はdmd 2.052
*2 2009/01/16現在はdmd 1.030
*3 2009/04/10現在のTango 0.99.8のバージョンでは、dmd 1.041
*4 別途Tangobosを導入することである程度利用できるようになる。
*5 別途std2を導入することである程度利用出来るようになるかもしれない。
*6 Tango 0.99.7
*7 さもなくばパスは自分で通す必要がある
*8 ...は省略しています。実際にはもっと多くのファイルが存在します。
*9 参考:http://www.kmonos.net/alang/d/1.0/dmd-windows.html
Page Info | |
---|---|
Page Name : | Tools/DMD |
Page aliases : | None |
Page owner : | SHOO |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | All visitors |
Users : | All visitors |