在Fedora 16上进行D编程

时间:2011-10-13 01:48:12

标签: d llvm fedora dmd gdc

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

LDC2运行良好,但我想知道,如果通过输出LLVM .ll / .bc代码,我可以在Windows / Mac / Android上编译和运行应用程序。我可以将.ll / .bc文件编译到带有LLVM的Windows机器上的ASM .s文件中。但是,我第一次尝试编译ASM时给出了错误:“未找到'main'函数。”通过ASM查看我确实看到了一个_Dmain函数。我没有编译ASM的经验,所以我有点迷失。

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

GDC怎么样?我想尝试GDC,但我在Fedora软件中心找不到它,而且我对Linux有点新意,所以我在从源代码构建它时遇到了困难。


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

3 个答案:

答案 0 :(得分:1)

  

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

标准库和语言运行库有很多代码根据当前平台有条件地编译,所以没有。

答案 1 :(得分:1)

  

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

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

答案 2 :(得分:1)

  

GDC怎么样?我想尝试GDC,但我在Fedora软件中心找不到它,而且我对Linux有点新意,所以我在从源代码构建它时遇到了困难。

编译GDC非常简单。只需彻底阅读instructions

其余的已经说过了。平台独立性是通过D级的条件编译实现的,因此bitcode也依赖于平台。