构建跨平台的 Delphi 应用程序。

10

我下载了 Lazarus,但也使用过 Embarcadero Delphi IDE。我有一个关于构建跨平台 Delphi 应用程序的问题。

如何在 win32 环境下构建它们?我阅读了来自 Lazarus 网站的维基,解释了如何做到这一点,但我仍然不理解它。是否可能在 win32 环境下构建和编译应用程序,以供 Linux 和 MacOS 使用?如果可能的话,请问有人能够逐步解释如何做到这一点。

编辑: 现在是谈论 Delphi IDE 新 XE2 版本的时候了 :)

谢谢


FPC/Lazarus <> Delphi,无论它们有多兼容。目前你无法构建“跨平台的Delphi应用程序”(在我看来,Prims虽然名字相似但并非真正的Delphi...),直到Embarcadero推出其跨平台产品(计划中,但尚未发布)。 - user160694
Idsadon,那不是evilone所问的。 - RBA
最佳提问地点应该是 Lazarus 论坛。我相信那个网站的某个人会帮助你。 - Wodzu
仍然没有得到满足我的需求的答案... - evilone
讨论尚未发布的XE2并没有建设性意义。如果在它发布后你有具体问题,那么这些问题是值得问的。但是为了这个目的而恢复一个将近9个月的旧问题是没有必要的。 - Ken White
XE2使用一个名为FireMonkey的新库进行非Windows开发,它与VCL/LCL无关。但XE2的win64端口是基于VCL的。 - Marco van de Voort
3个回答

8

我写道我不理解这个Lazarus维基文本,如果有人能够逐步向我解释它。我不需要关于如何编写跨平台代码的信息,而是需要关于如何构建等Linux的教程 - 编译后的文件不是可执行文件,而是与Linux兼容的文件。 - evilone
3
@evilone,已经发布的某些链接是逐步指南。你必须尝试遵循说明,当你遇到“具体”的问题时,可以再次在StackOverflow这里提问。 - RRUZ
@PRUZ,假设您想从Windows编译您的应用程序的Linux版本: "交叉编译"链接告诉您这有点棘手,请阅读“BuildFaq”。 “BuildFaq”的权威版本是PDF,但那是一个扫描文档,会让您的眼睛流血,因此我假设每个人都将阅读HTML版本。 HTML版本中有一个简短的段落介绍如何将Lazarus本身从Windows交叉编译到Linux,并在结尾处发出了这个可爱的警告:“这应该构建一个Linux Lazarus。但最有可能的是,它会因为缺少某些库而失败...”。 - Cosmin Prund
@PRUZ,非常感谢您提供的链接,因为我也将要解决这个问题,但是Lazarus维基实际上并没有包含使Windows到Linux交叉编译成为可能所需的信息。 - Cosmin Prund
构建常见问题解答并没有被扫描。不知道你是怎么想出那个主意的。 - Marco van de Voort

6
当交叉编译到非 Windows 目标时,虽然是可能的(并且不难),但在第一步就同时熟悉 fpc/lazarus 和交叉编译却有些难度。这是因为Linux不是一个非常同质化的目标,处理这种差异需要一些理解 Linux 上的库和链接是如何工作的。这使得“通用” Linux 一键式可下载交叉编译设置变得困难。我知道,这样的一键式方法对每个人都可以直接使用会很好,但这几乎不可能发生(或者只适用于非常有限的分发版本组合)。
使用 FPC 进行交叉编译并不是极其困难或高深的科学,但术语和细节的数量可能使未经训练的人感到困惑,并且如果没有背景知识,则很难诊断由于微小的错误配置而导致的问题。
我建议先熟悉 Lazarus/FPC,然后再进行交叉编译(已经提到的构建 FAQ 中列举了一些原因)。
最重要的是:在 Windows 上安装 Lazarus 并开始移植应用程序。如果成功了,请开始使用 Linux 安装包(或虚拟机)来熟悉 Linux 和其下的 Lazarus。您肯定需要一个 Linux 安装包来进行测试。
只有在此之后才开始考虑交叉编译以加快进程。

3

CodeTyphon 是一个强大的Lazarus/FPC跨平台本地开发的一键式安装程序包。它已经支持4个CPU/OS主机(Win32, Win64, Linux32, Linux64)和16个CPU/OS目标(arm-Wince, arm-Linux, arm-Embedded, arm-gba, arm-nds, i386-Win32, i386-Linux, i386-FreeBSD, i386-Haiku, x86_64-Win64, x86_64-Linux, x86_64-FreeBSD, powerpc-Linux, powerpc64-Linux, sparc-Linux, sparc-Solaris)。在Lazarus/FreePascal中支持更多,但其他尚未集成到CodeTyphon中。我提到它是免费的了吗?一个代码统治它们所有;-)

重点是你不必浪费几天来设置你的跨平台环境,因为有人已经为你做了艰苦的工作。


avra,这里写着“此项目的许可证为:免费软件”。 - RBA
1
这个项目可以让您更轻松地安装使用FPC/Lazarus的跨平台链。 - Arnaud Bouchez
如果你对那个项目了解这么多,请告诉我如何在Windows环境下构建Linux应用程序。 - evilone
我对这个项目的了解仅限于我的需求。你没有查看我给出的链接吗?其中一个链接指向http://www.pilotlogic.com/codetyphon/help/,在那里你可以找到一个关于WinCE交叉编译的示例(主题“7.1 Cross-Build for WinCE”)。其他系统也是同样的原理。 - avra

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