可以将D编译成与平台无关的代码吗?

时间:2015-01-23 17:53:47

标签: linux windows cross-platform d

我看到this question,我想知道我是否可以用D做类似的事情。

更具体地说,我正在使用x86_64处理器从Linux机器开发。

我的目标是

  • 使用x86_64处理器的Linux机器(不是最大的问题)
  • 使用x86_64的Mac(应该可行......)
  • 使用x86_64的窗口 - 这是跨平台问题发挥作用的地方。作为一个兼职开发人员,没有任何访问Windows机器,并且不愿意获得一个,我对平台独立编码比移植到窗口更感兴趣。
  • 使用i686(32位)的Windows - 是否可以为64位和32位目标编译代码?

项目目前在Linux机器上,完全使用标准的Phoboes库,导入部分是,它大量使用LuaD和一些C源编译成* .o文件。

2 个答案:

答案 0 :(得分:3)

如果D.NET project成功,你就会有答案。当前状态是没有D编译器以JVM或CLR或任何其他VM为目标。所有当前的D编译器都编译为本机机器代码。我梦想着开始一个项目来制作针对JVM的D编译器,但遗憾的是没有时间进行这样的(巨大的)项目。

答案 1 :(得分:3)

D使得编写可移植源代码变得非常容易,因为标准库为许多特定于OS的API提供了抽象。否则,C ++的相同答案通常适用于D,尽管目前所有实现都将D编译为本机代码。

您可以通过在Wine下运行Windows D编译器来生成Windows二进制文件。从理论上讲,GDC和LDC应该可以进行交叉编译,但我不知道它与工具链的成熟程度如何。