我想嘗試D,但我不太確定使用什麼編譯器。我在這個主題上找到了一些文章,也提出了一些問題,但是我沒有找到任何最新的文章。要使用哪種D編譯器?
每個編譯器有什麼好處,有什麼缺點?現在DMD編譯器似乎對我來說是最好的,但我可能只是被過時的信息所誤導。
我想嘗試D,但我不太確定使用什麼編譯器。我在這個主題上找到了一些文章,也提出了一些問題,但是我沒有找到任何最新的文章。要使用哪種D編譯器?
每個編譯器有什麼好處,有什麼缺點?現在DMD編譯器似乎對我來說是最好的,但我可能只是被過時的信息所誤導。
所有3個主要的D編譯器(dmd,gdc,ldc)都使用相同的前端,但dmd通常比其他參考編譯器稍微領先一些。另外,我認爲還有一些情況下其他兩個還沒有實現某些功能(主要是在Windows或OS X IIRC上),但通常它們工作得很好。 gdc或ldc的主要優點是它們可以生成更快的代碼(儘管速度取決於代碼)。但是,他們也花費更長的時間來編譯代碼。
所以,如果你剛剛開始,我建議你只使用dmd而不用擔心它。它保證是最新的編譯器,我相信這是大多數人使用的。它的主要缺點是它生成的代碼不是一樣快,但是如果/當你真的關心這些時,你可以在以後查看其他編譯器。
對於生產代碼,我通常採用的方法是使用dmd進行開發,然後使用gdc或ldc生成生產代碼。這樣,您在開發代碼時會獲得快速的編譯時間,但仍然可以在生產中獲得更快的二進制文件。
添加到喬納森的回答是:
您的選擇也受到限制操作系統您正在使用。在Linux上,所有3個(DMD,GDC和LDC)都可用。在Windows上,DMD是您唯一的實際選擇,尤其是如果您習慣於Visual Studio(獲得Visual D附加組件)。在Windows上使用GDC或LDC涉及不同程度的痛苦(請參閱this discussion)。
如果你想玩SIMD,使用DMD。其他編譯器具有不完整或缺失的實現(基於DConf 2013會談)。
另請參閱[在GDC和DMD之間選擇](http://stackoverflow.com/questions/14199676/choosing-between-gdc-and-dmd) –
另請參閱[DMD vs. GDC vs. LDC](http: //stackoverflow.com/questions/6767065/dmd-vs-gdc-vs-ldc) –