哪个D编译器可以使用?

时间:2013-08-16 22:06:49

标签: compiler-construction d dmd gdc

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

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

2 个答案:

答案 0 :(得分:21)

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

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

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

答案 1 :(得分:9)

添加到Jonathan的回答:

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

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