コンパイラ」のところからdownloadページに飛べます。インストール方法もそこに書かれています。わからなければ、D言語チュートリアル[日本語]のほうも参考にしてください。dmフォルダを置くことにします。Dというのをダウンロードすればインストールの手間が省けるようです。コンパイルに際してはいちいちコマンドプロンプトで作業するのは面倒なので次のようなshellを呼び出すバッチファイルを組んでおきます。$(DFLAGS)hellomakeを使ってビルドするmakeを使うのが基本でしょう。makeを使ってコンパイルしてみます。代表的なmakeと言えばMicrosoft系のnmake(VisualC++とかに付属している)か、cygwinに付属しているmakeかですが、前者はフリーではない模様。後者は、cygwin環境でなければ動作しないようです。(cygwin.dllが必要)dmdコンパイラ付属のmakeは、フォルダ名に半角スペースがまじっているとうまく動きません。dmdコンパイラ付属のshellも同様の問題があります。Settings」とか不可になります。このディフォルトで作られるフォルダ名にスペース入れるのやめて欲しいですけど>Microsoft..そこで、MinGWのほうのmakeをdownloadしてきます。"でフォルダ名やファイル名を囲むことが出来ますので、これに対応できます。mingw32-make-3.80.0-2.exeって書いてあるのが実行ファイルのようです。インストーラー付きなのでmingw\bin\とかいうフォルダに入ります。どっちかと言うと実行ファイルだけが欲しいです。́Д`)人インストール先にmingw32-make.exeというファイルが出来るので、これをmakeとリネームして使うことになります。いうテキストファイルを用意して、以下のよう編集。実行すれば、コンパイル出来ます。(make.exeはmakefileと同じフォルダか、pathの通ったフォルダに。make)では、ソースファイル名の指定はwildcardが使えます。以下は、ロベールさんが書かれたmakefile。DMDコンパイラのリンカーは、ファイル名に'/'を受け付けないので、ファイル名を'\'に置換する処理も含まれています。makeというか、MS-DOSだとWin9x系はコマンドプロンプト1024文字制限(だったかな)があって、これ以上長い文字列は渡せません。そこで、ファイル数が多くなってくるとこの制限にひっかかります。これを回避するには、dmdコンパイラに、コンパイルオプションを@を使ってファイルに書かれた内容を指定してやれば良いでしょう。@optfile.txt(optfile.txtには、コンパイルオプションが書かれている)秀丸からビルドする私はテキストエディタとしては秀丸を愛用しているのですが、秀丸のマクロ機能を使い、裏でmakeを起動して、エラーが発生すればエラー行へ飛ぶというようにしました。今回は、このマクロについて解説します。秀丸エディタについては、http://hp.vector.co.jp/authors/VA001418/makeについては、makeを使ってビルドするをご覧ください。makeerror.logというファイルにmake中のエラーを吐くmakefileを作ります。makeを起動するときにリダイレクトしても良いのですが、秀丸ではちょっと難しいようなので、makefileのなかで指定します。ついでに実行するならここに書くべし秀丸用のマクロは、以下のような感じです。そのままコピペして、適当な名前(拡張子は.mac)をつけて保存し、秀丸エディタのインストール先のフォルダへ入れてやります。Files\Hidemaruです。そのあと、メニューの「マクロ」→「マクロ登録」で、タイトルは「DMDコンパイル」とでも名前をつけて、ファイル名としてこのマクロファイル名を指定してやります。ついでにF5キーあたりでこのマクロが起動すると使い勝手がいいので、「その他」→「キー割り当て」でキーとして「F5」を選択し、コマンドとして「メニュー/マクロ」を選び、さきほど名前をつけた「DMDコンパイル」というマクロを選択してやります。"D言語のソースではありません。{//なければ元のファイルの編集に戻るsetactivehidemaru(findhidemaru($f1));}これでD言語のソースを秀丸で編集し、F5を押すだけでエラー行へ飛べるようになりました。デバッガで追いかけるデバッガが使いたい場合、gdbには現状対応していないようなので、windbg:http://www.microsoft.com/whdc/ddk/debugging/default.mspxを用いるか、VisualStudioを使っている人ならば、VisualStudioからデバッグしてもいいでしょう。C++のWin32プロジェクトがお手軽)そのなかでやるといいでしょう。以下、VisualStudio.NETでのデバッグ例。1.-gオプション付きでコンパイルする。2.VSを起動して、「ソリューションを開く」で作成したexeを開く。普通に「開く」やドラッグアンドドロップで開くとリソースの編集画面になってしまいます。「ソリューションを開く」がポイント。3.IDEに自分で作ったソースコードをドラッグアンドドロップします。4.(試しに)そのソースコードの適当な部分にブレークポイントを設定してF5を押す。3.までくればあとはステップイン/ステップオーバーを駆使してデバッグしていけます。antによるコンパイルJavaのビルドツールとしては、Ant[ビルドツール]が有名でしょう。健太(ABA."Saba")氏の日誌にantに関する情報が載っているので、関連記事を引用させていただきます。applyを使ってdmd.exeを呼び出しているんだけど、特定のargsの直後に「スペースを空けずに」ターゲットファイルを指定する方法が分からない。dmdが'-offilename'っていうオプションになっているのだが、これに適合した外部ツール呼び出しができない。dmdを使って普通にコンパイルすれば、.dと同じディレクトリに.objができるはずなんだけど、Antを通してやるとなぜかソースのルートに生成されてしまう。mapperのglobタイプで依存関係を指定できない。特定のディレクトリに.objファイルを作ることはできるので、.dをflattenしてかつ.objに拡張子を変更できれば依存関係を指定できるんだけど、そんなtypeはありゃしねえ。2003-08-26昨日のDをAntでビルド話(id:ABA:20030825#p1)続き。コメントいただいたとおり、'-op'オプションでばっちりいけました。これで.dと.objを同じディレクトリに配置できたので、mapperのglobタイプで依存関係が示せます。具体的には、以下のような感じ。</apply></target>(<applyの後に</pp>っていう謎のタグが付いちゃうんだけどなんだこれ?こんなの書いてないんだけど。前に苦労してAntのbuild.xmlを書いて、修正されたDファイルのみ再コンパイルされるようにしたが、リンカが思ったほどよきにはからってくれない。Violationを起こすこともある。2003-12-08Antの高速化D言語で書いたゲームのビルドを、私はAntでやっている(id:ABA:20030826#p1)のだが、Antの大きな欠点として、makeと比較すると動作が遅いということがある。Antが遅い理由は明らかで、Antコマンドが叩かれるたびにJavaVMを起動しているためだ。Javaが速くなったといっても、相変わらずVMの起動は非常にコストのかかる動作で、すかっと立ち上がるものにはなっていない。Consoleを立ち上げておけば、あとはコンソール上で'all'とでも入力するだけで、さくさくビルドできる。2回目以降はリターンを押すだけでよい。Antの遅さに辟易している人にお奨め。いうことで、非常に詳しく書かれているので、私がここで説明することは何もなくなってしまいました。́Д`)D言語のソースにdoxygenを使う仕様書の作成に関しては、C++やJavaなんかだと、doxygen[仕様書生成ツール]を用いるのが一般的のようですが、D言語の場合はどうなのでしょうか?C++とD言語とは言語的には似通っているので、少しソースをコンバートしてやればdoxygenでも変換できます。groupに投稿していました。・doxygenは日本語フォルダ名不可。.cppへの暗黙の変換規則でdfilterを用いてます。実際には.cppファイルは生成していません。↑c:\\doxygen\\yaneSDK4Dフォルダに変換後のソースをぶちこむのだ。ruleを用いれば以下のように書ける模様。>$@また、doxygenのほうは、INPUT_FILTERという設定で、dfilterを指定すれば、そのまま変換できるんじゃないかという指摘をMLで受けました。-eLu"とかやってるので・・・な、、なるほど。そんな機能あるんですね..。D言語のソースを上記のdfilterを通過させてdoxygenを使ってみた感想ですけど、なかなかうまく変換できています。・コンストラクタがthis()なので、コンストラクタとして認識してくれない。(これは、doxygen側の問題でしょうけど。)・デストラクタは~this()なのでデストラクタとして認識してくれる・例外はErrorから継承しているのですが、これが基底クラスだと認識してくれない。あればprivateだと認識します。これはdfilterの変換上のバグだと思います。・delegateを用いている部分は関数ポインタ表記に変換される。template内のクラスはある程度うまく変換できています。Duden氏が、さらに改良し、doxygenのほうにもパッチを当てて、本格的にDに対応させたそうです。http://www.digitalmars.com/drn-bin/wwwnews?D/20989Hauke氏から、Win32用のバイナリをメールでいただきましたので、以下に置いておきます。(doxygenのバイナリ、dfilterのソース、バイナリ付き)ddoc.zipdoxygenはMS-DOSのpipeを使ってdfilterを通すようなんですが、どうもMS-DOSは、unicodeのpipeに問題があるようで、化けます。そこで、ソース全体をフォルダまるごとxcopyしたあと、UnicodeからMCSに変換しておきdoxygenを実行する必要があります。0;DIDEでビルドするDIDEを用いて、yaneSDK4Dをビルドしてみました。Setting)が含まれているとうまくコンパイルできないようなので、yaneSDK4DとSDLのフォルダの中身を、c:\dmd\includeに放り込みます。c:\dmd\include\y4d.dc:\dmd\include\ytl\vector.dc:\dmd\include\ytl\list.d(中略)c:\dmd\include\SDL.dc:\dmd\include\SDL_image.d(以下略)手順2.プロジェクトを作成し、これらのファイルをプロジェクトに追加します。プロジェクトに追加しておかないと、リンカがシンボルを解決できません。SDL_ttf.lib」などと、使用するlibファイルを指定します。これでコンパイルできます。yaneuraohttp://bm98.yaneu.com/dlang/。