题 D支持64位有多好?


我想尝试一下 D 编程语言。我有一个简单的宠物项目,我一直想完成,我认为这将是一个很好的学习机会 D 2.0

但是,我的主要操作系统是使用Windows 7 64位的kubuntu 64位双启动,我似乎无法让它工作。该项目将使用 SDL 我怀疑我的64位操作系统可能是个问题。

目前的事态是什么? D 64位?有没有人有这方面的工作经验?

顺便说一句,我没兴趣 D 1.0, 所以就是 D 2.0 或者破产。


20
2018-03-04 04:09


起源




答案:


目前,答案是响亮的“它取决于”。具体来说,它取决于操作系统和哪个版本的D.

DMD或Digital Mars D编译器是参考实现,并提供64位支持。 64位支持是非常新的(见下面的评论),但语言创建者Walter Bright已经表示,将它与32位相提并论是一个高优先级,现在D2已经出门了(现在更正确的是Andrei Alexandrescu的书) “D编程语言” 已被释放)。但是,他表示由于链接器问题,前几个版本将不支持Windows上的64位(这似乎是 仍然是真的)。

对于D1,如果您使用,则在Linux和Mac上支持64位 LDC,这是一个针对LLVM的D编译器。对于Windows, GDC 针对GCC后端的编译器已经复活,但是在曲线后面有几个版本。在D1上,这并不是非常重要,因为语言规范相当稳定。

对于D2,目前基本上不存在64位支持。前面提到的GDC确实支持它,但是D2一直在快速发展,GDC太过时了,在这里没用。为版本2.015(最新的GDC支持)编写的大多数非平凡代码可能甚至不会在版本2.040(最新版本的DMD)上编译,反之亦然。

编辑:截至今天,2010年6月21日,SVN中有一些提交对DMD的64位支持。这些远不是一个有效的编译器,但关键在于它正在进行中。

编辑#2:截至2011年2月中旬,DMD 2.052在Linux上支持64位。

编辑#3:截至2011年11月, GDC 是可用的,只有一个版本落后于DMD,虽然它有点beta-ish而且尚未打包。你必须从源代码编译它。


21
2018-03-04 04:23



更新:适用于Linux的64位DMD已于2011年2月17日发布(v2.052)。 - kennytm
更新:GDC已经赶上了DMD前端,目前处于DMDFE版本2.052。 - klickverbot
我们现在有适用于Windows的64位GDC二进制包。 - Vladimir Panteleev
看起来现在好些了: auto-tester.puremagic.com/?projectid=14 - Atifm


正如dsimcha所说,D2.0你找不到64位编译器。但是,您可以安装32位dmd编译器以在Linux中编译32位程序。你可能正在使用 废弃 作为您的SDL包装器。

需要额外的包

更新:由于编译器是32位,您将需要安装32位版本的SDL库。我认为您不会在存储库中找到它们,因此您需要自己编译SDL(您可以从32位存储库中解压缩SDL .deb并手动安装它们)。对不起,我错过了那个问题。


3
2018-03-04 15:25



那个环节很金。它让我更加接近。然而,我仍然被卡住了。 32位可执行文件不想加载SDL库。 - deft_code