Delphi跨平台编译器,适用于Linux操作系统。

10

我想知道是否有任何Borland交叉编译器可以使我的Windows代码在Linux上工作,而不需要Wine。我正在使用带有Delphi 7的WinXP。我一直在想,是否有可能编写与我在Windows中编写的同一工具相同的工具,在Linux中使用Pascal代码编写相同的工具是如何实现的。谢谢


2
你可以等待下一个Delphi版本(Delphi XE3),它可能会兼容Linux。EMB的路线图并不是很清晰,但提到了Android / Linux:http://blogs.embarcadero.com/jtembarcadero/2011/09/17/may-the-roadmap-rise-with-you/ - philnext
4个回答

13

最佳解决方案是Lazarus,它类似于Delphi的GUI,可用于Free Pascal。如果您使用的是“纯粹”的VCL,没有Windows内部或任何特殊的附加组件,迁移将非常容易 :) 在这里看一下: http://lazarus.freepascal.org

顺便说一下 - Lazarus和FPC是真正的跨平台 - 您可以使用相同的代码库为Linux、Windows、MacOS等编译代码 :)


8
我使用[CodeTyphon](http://www.pilotlogic.com/sitejoom/index.php/codetyphon)发行版下载并安装了FPC+Lazarus。它提供了两个项目的所有源代码,大部分可用的第三方库,并允许从易于使用的界面编译跨平台IDE。我惊讶于这个IDE成熟、易于使用和强大的程度。而且比Delphi最新的IDE要轻得多(即使使用了很多组件)。而且从源代码编译IDE和编译器(只需几分钟)非常非常棒。它改变了其他解决方案的不透明性。 - Arnaud Bouchez
4
另一个使用FPC的IDE是MSEGUI,适用于Windows和Linux。来自一个人,提供了撰写实质性商业应用的全平台库。非常活跃。生成的可执行文件比Lazarus生成的更轻(但你失去了VCL布局:这是另一个完整的框架)。请参见http://gitorious.org/mseide-msegui。 - Arnaud Bouchez
这在很大程度上取决于什么被认为是实际的,不是吗? - Marco van de Voort
@Marco 不需要个人化。如果您有一个具有第三方依赖项的大型VCL项目,那么将其移植到不同的平台始终是困难的。 - David Heffernan
我已经试用了Lazarus几周了。我同意,如果您从头开始设计GUI,然后将应用程序代码从Delphi应用程序中剪切并粘贴过来,会更容易一些。最大的缺点是它不支持MDI应用程序,而我在我的EDA应用程序中经常使用MDI应用程序,因为选项卡窗口界面有点糟糕。 - Andy k
显示剩余4条评论

5
如果你想要一个Borland Delphi跨编译器,你唯一的选择是CrossKylix。这并不是一个真正的跨编译器。相反,你需要在模拟的Linux环境下运行Linux的Kylix编译器。
请注意,你将被迫使用CLX而不是VCL,并且现在Kylix已经彻底死亡了。个人认为,Wine可能是一个更容易和更好的选择。

最后更新似乎是在2010年7月31日。Delphi似乎不是构建跨编译应用程序的好选择,对吗@David? - karlphillip
@karlphillip 好吧,它适用于 Mac,并且我们预计在未来几年内会有更新的 Linux 编译器。但是,正如我所说,Kylix 已经彻底死亡了。 - David Heffernan
我不知道它对Mac有好处。我想我已经脱节太久了。谢谢。 - karlphillip
@karl XE2引入了Mac支持。 - David Heffernan
4
@Karl,考虑到被包装的工具是在2002年发布的,所以2010年似乎相当近。 - Rob Kennedy
2
CrossKylix已于2010年更新,可在Windows Seven上运行。它的性能非常好,但调试更加困难。我将其用于多个项目,从Delphi 7 IDE:对于在廉价Linux盒子上运行的服务器应用程序,它非常出色!但对于GUI应用程序来说,它不是一个好选择:CLX库已经完全过时了。而且你需要找到Kylix原始CD / iso来安装它。 - Arnaud Bouchez

2

2

首先,这完全取决于你在程序中使用了哪些系统功能。在大多数情况下,没有可能在Linux下交叉编译。

但是,在某些情况下,Borland Kylix可以帮助解决问题,但据我所知,它现在几乎已经停止维护了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接