Joh*_*ler 10 linux delphi wine lazarus
我需要在Linux上提供我的Delphi解决方案,并且我已经在Wine和Lazarus上测试了它们.从长远来看,我应该考虑哪些技术因素(编程,部署,维护等),以避免在维护噩梦中降落.我保持我的Windows组件使用非常标准,以避免可能在跨平台上开发的复杂性.我正在寻找一些不仅仅是主观的事实.我不想考虑.Net/Mono因为这会让我立即回归(巨大的延迟推向市场),这是我买不起的.
我能想到一些:
你对此的贡献将不胜感激.
Mar*_*ort 18
我会说那里没有黄金法则.这将取决于Lazarus支持您使用的组件数量.
我开始用拉撒路进行测试,并保留葡萄酒作为备用,以防你绝望.
Codegear计划仍然非常模糊(他们只是"看着它",但同时他们在两个完整版本上涂抹64位推出,所以即使这取得了进展,这可能还需要一段时间)
快速时间表让我觉得Apple版本将使用QT,而不是原生api.
更新:将近4年,仍然没有Linux支持.树木生长得更快.
Zoë*_*son 16
我必须不同意这里的其他人,并建议你使用Wine.Google正在通过Wine安装Picassa,您可以做同样的事情.他们不是依赖于发行版安装的版本,而是在预配置的程序目录中有一个副本,并且具有可以测试的已知版本.
基本上你只需要询问Wine包装器不会提供什么样的本机端口.对于大多数Delphi应用程序,答案可能是主题,而其他很少.我们创建了一个本地端口,因此我们可以在较低级别访问文件系统,但在此之前,我们的产品几乎完美地使用了Wine多年.
根据经验,本地港口不是在公园散步:
我一般建议使用Lazarus.如果您依赖WINE,您也会受到WINE错误的影响,这可能会影响您的产品质量.在Windows环境中使用Lazarus + FPC甚至可能很有用.
另一种方法是使用虚拟化,但这取决于您正在编写的应用程序类型.
首先,您应该尝试确保您的 GUI 代码和非 GUI 后端代码完全分离到 GUI 应用程序和库中(如果尚未分离)。这使得测试更容易,也更容易实现命令行界面、Web 界面等。大多数情况下,这些库(带有对象和过程的单元文件)应该可以在 FreePascal 上轻松编译,但是您应该检查和调试非 GUI 代码第一的。
一旦解决了这个问题,就该看看你的 GUI 了。如果您使用大量闭源第三方商业组件,那么您可能无法轻松转换 GUI。如果您主要使用库存组件和/或已移植到 Lazarus 的组件,那么您确实可以转换 GUI 并按原样使用它。
请注意,由于 Mac OS 和 Linux 程序通常看起来不同,因此您可能需要根据您的应用程序来考虑这一点。可能的方法包括: 1. 即使在 Windows 上也使用 Lazarus,并对所有平台使用相同的 GUI 代码。2. 仅在 OS X 和 Linux 上使用 Lazarus,并将 GUI 自定义为转换后看起来有点原生。3. 为 OS X 编写本机 GUI(使用 Cocoa 或 XCode),然后链接到 Pascal 代码以进行非 GUI 处理。这种事情在 Linux 上不太必要,但是您可以选择用于 LCL (VCL) 后端的工具包。
每种方法都有强烈的支持者,但哪种方法正确取决于您的“情况”和您的目标。
如果您的主要兴趣是 OS X,请考虑加入 MacPascal 列表。
Wine 是一个巨大的杀伤力,除非你明天需要在几乎不做任何修改的情况下发布 Linux/OS X 应用程序。(既然如此,为什么不直接使用VMWare呢?)
| 归档时间: |
|
| 查看次数: |
4304 次 |
| 最近记录: |