【问题标题】:How well does D support 64 bit?D 对 64 位的支持如何?
【发布时间】:2011-01-23 12:36:09
【问题描述】:

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

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

D 64 位的当前状况如何?有没有人有过让这个工作的经验?

顺便说一句,我对D 1.0 不感兴趣,所以它是D 2.0 或破产。

【问题讨论】:

    标签: 64-bit d


    【解决方案1】:

    目前,答案是响亮的“视情况而定”。具体来说,这取决于操作系统和 D 的版本。

    DMD 或 Digital Mars D 编译器是参考实现并提供 64 位支持。 64 位支持是新的(参见下面的 cmets),但语言创建者沃尔特·布莱特(Walter Bright)表示,既然 D2 已经推出(或者更准确地说,现在 Andrei Alexandrescu 的书 "The D Programming Language"已发布)。但是,他表示由于链接器问题,前几个版本在 Windows 上将不支持 64 位(这似乎是still be true)。

    对于 D1,如果您使用 LDC(一个针对 LLVM 的 D 编译器),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-ish 并且尚未打包。你必须从源代码编译它。

    【讨论】:

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

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

    Additional Packages Required

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

    【讨论】:

    • 那个链接是金色的。它让我更接近了。但是,我仍然被困住了。 32 位可执行文件不想加载 SDL 库。
    猜你喜欢
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2015-05-26
    • 2019-12-30
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    相关资源
    最近更新 更多