2010-03-04 75 views
20

我想试试D编程语言。我有一个简单的宠物项目,我一直想完成,我认为这将是学习D 2.0的好机会。D如何支持64位?

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

什么是事务的D 64位的现状如何?有没有人有经验让这个工作?

顺便说一句我没有兴趣D 1.0,所以它的D 2.0或萧条。

回答

21

目前,答案是一个响亮的“它取决于”。具体而言,它依赖于OS和D.

DMD或数字火星d编译器的版本上,是参考实现和提供了64位的支持。 64位的支持是新的(见下面的评论),但语言创建者瓦尔特布莱特已经表明,现在把它与32位相提并论,现在D2是一个高优先级的事情(或者更确切地说,现在Andrei Alexandrescu的书"The D Programming Language"已经发布)。不过,他表示,由于链接器问题,前几个版本在Windows上不支持64位(这似乎是still be true)。

对于D1,如果使用LDC,这是一个d编译打靶LLVM支持64位是在Linux和Mac很大。对于Windows,以GCC后端为目标的编译器GDC已复活,但在曲线后面有几个版本。在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版本,但尚未打包。你必须从源代码编译它。

+6

更新:Linux的64位DMD已于2011年2月17日发布(v2.052)。 – kennytm 2011-03-07 21:19:01

+2

更新:GDC已经赶上DMD前端明智,目前在DMDFE版本2.052。 – klickverbot 2011-03-09 18:22:56

+2

我们现在有适用于Windows的64位GDC二进制包。 – 2012-01-26 15:02:40

3

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

Additional Packages Required

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

+0

那个链接是金色的。它让我更加接近。然而,我仍然陷入困境。 32位可执行文件不需要加载SDL库。 – 2010-03-05 06:23:08