Improve this page
Github へのログインが必要です。
簡単な修正は、ここから fork、オンライン編集、pull request ができます。
大きな修正については、
通常の clone で行って下さい。
Page wiki
関連するWikiページを参照・編集
English
このページの英語版(原文)
rdmd
概要
コマンドプロンプトから:% cat myprog.d import std.stdio; void main() { writeln("Hello, world without explicit compilations!"); } % rdmd myprog Hello, world without explicit compilations! %Dのソースコード中で:
% cat myprog.d #!/usr/bin/rdmd import std.stdio; void main() { writeln("Hello, world with automated script running!"); } % ./myprog.d Hello, world with automated script running! %(Windows では cat の代わりに type を、#!/usr/bin/rdmd の代わりに #!rdmd を、rdmd に PATH が通して、置き換えて読んで下さい。)
詳細
rdmd は dmd コンパイラを補助するツールで、 典型的な 編集-コンパイル-リンク-実行 や 編集-make-実行 のサイクルを、 編集-実行 というサイクルに早めるものです。make やその類似ツールのように、rdmd は更新日時の情報を使って再ビルドの必要量を最小にします。 make と違い、rdmd は、依存関係や新しいファイルの情報をユーザーの助けなく自動で取得できます。
rdmd は:
- D 言語のソースコードが、 複数のファイルの関わる何段かのステップと様々な中間ファイルを経て実行可能なプログラムの形になる、 という概念をユーザーから隠蔽します。
- import を繰り返したどることで、 依存するファイルを自動的に推論します。
- dmd のコマンドラインオプションを全て認識し適切に引き渡します。
- dmd の様々なコンパイルオプション (例えば -release と -debug) がコード生成に及ぼす影響を把握し、 不測の事態 (例えば release ビルドを動かしたかったときに debug ビルドを動かしてしまうなど) を起こしません。
- 必要なファイルだけを再コンパイルします。例えば、 ソースコードを一切変更せず rdmd を続けて二回呼び出したときは、 実行ファイルを再度作成することはありません。
使い方
rdmd [dmd と rdmd に渡すオプション] progfile[.d] [プログラムに渡すオプション]
dmd のオプションに加え、rdmd は以下のオプションを認識します:
- --build-only
- ビルドのみ。実行はしない。
- --chatty
- dmdコマンドを、 実行する前に標準出力に表示
- --compiler=/path/to/compiler
- 指定のコンパイラ (例 gdmd) を dmd の代わりに使用
- --dry-run
- 実際のコンパイルは行わず、本来実行されるはずのコマンドの列を表示だけします。 (--chatty の効果が自動的に含まれます)
- --eval=code
- コードを void main(char[][] args) { ... } で括って実行します。 (複数 --eval を指定すると、 順に評価されます。)
- --exclude=package
- 指定のパッケージをビルドから除外します。 (複数 --exclude を指定できます)
- --force
- 再ビルドを(必要ないように思われるときであっても) 強制的に実行します。
- --help
- ヘルプメッセージを表示して終了します。
- --loop=code
- --eval に近いですが、加えて、コードが foreach (line; stdin.byLine()) { ... } というループの中に入ります。
- --main
- 空の void main() {} 関数を追加。 (単体テストの実行に便利です。)
- --makedepend
- 依存関係を Makefile の形式で表示して終了します。
- --man
- 使用方法説明のページをブラウザで開きます。
- --shebang
- rdmd が shebang 行にあることを示します (先頭の引数として指定)