15

我想尝试 D 但我不太确定要使用什么编译器。我找到了一些关于这个主题的文章,还有一些问题,但我没有找到任何最新的。

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

4

2 回答 2

22

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

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

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

于 2013-08-16T22:32:48.083 回答
10

添加到乔纳森的答案:

您的选择也受到您使用的操作系统的限制。在 Linux 上,所有 3 个(DMD、GDC 和 LDC)都可用。在 Windows 上,DMD 是您唯一实用的选择,特别是如果您习惯于 Visual Studio(获取 Visual D 插件)。在 Windows 上使用 GDC 或 LDC 会带来不同程度的痛苦(请参阅此讨论)。

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

于 2013-08-19T05:57:02.803 回答