哪个D编译器可以使用?

Jer*_*oen 14 compiler-construction d dmd gdc

我想尝试D,但我不太确定使用什么编译器.我在这个主题上找到了一些文章和SO问题,但我没有找到任何最新的文章.

每个编译器有什么好处,有什么缺点?现在DMD编译器对我来说似乎是最好的,但我可能会被过时的信息误导.

Jon*_*vis 21

所有3个主D编译器(dmd,gdc,ldc)使用相同的前端,但dmd通常比其他前端更先进,因为它是参考编译器.此外,我认为在某些情况下,其他2个尚未实现某些功能(主要在Windows或OS X IIRC上),但总的来说,它们工作得很好.gdc或ldc的主要优点是它们生成更快的代码(尽管代码的速度有多快).但是,编译代码也需要更长的时间.

所以,如果你刚刚开始,我建议你只使用dmd而不用担心它.它保证是最新的编译器,我相信它是大多数人使用的.它的主要缺点是它生成的代码不是那么快,但是如果/当你真正关心它时,你可以稍后查看其他编译器.

对于生产代码,我通常采用的方法是使用dmd进行开发,然后使用gdc或ldc生成生产代码.这样,您在开发代码时可以获得快速的编译时间,但仍然可以在生产中获得更快的二进制文件.


Pau*_*zak 9

加入Jonathan的回答:

您的选择也受到您正在使用的操作系统的限制.在Linux上,所有3(DMD,GDC和LDC)都可用.在Windows上,DMD是您唯一的实用选择,特别是如果您习惯使用Visual Studio(获取Visual D插件).在Windows上使用GDC或LDC涉及不同程度的痛苦(参见本讨论).

如果您想使用SIMD,请使用DMD.其他编译器的实现不完整或缺失(基于DConf 2013会谈).