4

我最近安装了 Fedora 16(这很棒),主要是因为我想尝试 LDC2,但也因为 Gnome Shell 在 Fedora 上的运行比 Ubuntu 11.10 更流畅(至少在我的硬件上)。

LDC2 效果很好,但我想知道通过输出 LLVM .ll/.bc 代码是否可以在 Windows/Mac/Android 上编译和运行应用程序。我可以使用 LLVM 在我的 Windows 机器上将 .ll/.bc 文件编译为 ASM .s。然而,我第一次编译 ASM 的尝试给了我错误:“'main' functions not found.”。通过 ASM,我确实看到了一个 _Dmain 函数。我以前没有编译 ASM 的经验,所以我有点迷茫。

我知道 DRuntime 在这里发挥作用,但是关于 LDC2 的 DRuntime 平台支持状态的最新信息很少。所以我想知道我的选择是什么。LDC2 现在可以为 Windows 编译代码吗?目前是否支持任何其他平台/架构的交叉编译?

GDC呢?我想尝试 GDC,但在 Fedora 软件中心找不到它,而且我对 Linux 有点陌生,所以我很难从源代码构建它。


D(第 2 版)是我最喜欢的语言(其次是 C#),我期待有一天我可以用 D 编写游戏/应用程序,而不必担心硬件或平台支持。我支持这门语言,我希望开源社区在未来能够大力支持 D。它确实是我所见过的功率、性能和生产力的最佳平衡。

4

3 回答 3

1

GDC呢?我想尝试 GDC,但在 Fedora 软件中心找不到它,而且我对 Linux 有点陌生,所以我很难从源代码构建它。

编译 GDC 很简单。只需仔细阅读说明。

其余的已经说了。平台无关是通过 D 级别的条件编译实现的,因此位码也是平台相关的。

于 2011-10-13T11:16:31.847 回答
1

LDC2 工作得很好,但我想知道通过输出 LLVM .ll/.bc 代码是否可以在 Windows/Mac/Android 上编译和运行应用程序。

不,不仅仅是因为运行时的差异。阅读http://llvm.org/docs/FAQ.html#platformindependent。虽然它是面向 C/C++ 的,但仍然有很多东西适用于 D。

于 2011-10-13T10:00:55.707 回答
1

我想知道,通过输出 LLVM .ll/.bc 代码,我是否可以在 Windows/Mac/Android 上编译和运行应用程序。

标准库和语言运行时有大量根据当前平台进行条件编译的代码,所以没有。

于 2011-10-13T02:31:11.387 回答