如何将Windows程序编译成一个与Wine一起运行的Linux二进制文件?

如何将Windows程序编译成一个与Wine一起运行的Linux二进制文件?,linux,delphi,wine,Linux,Delphi,Wine,就在今天,我在ubuntu上安装了wine Delphi3到7工作得非常好(Rad工作室因为使用.net废料而无法工作)。 但是我做的所有申请都非常有效!!!!! 我听说它在mac和WineBallerner中也能很好地工作 是否可以创建一个头linux可执行文件,并将我的vcl应用程序和requird wine内容放入其中,然后作为单个可执行文件(.bin)分发?Borland为linux提供了一个解决方案,称为Kylix。Kylix基于一些较旧的Qt内容。 但是我想试试FreePascal/

就在今天,我在ubuntu上安装了wine

Delphi3到7工作得非常好(Rad工作室因为使用.net废料而无法工作)。 但是我做的所有申请都非常有效!!!!! 我听说它在mac和WineBallerner中也能很好地工作

是否可以创建一个头linux可执行文件,并将我的vcl应用程序和requird wine内容放入其中,然后作为单个可执行文件(.bin)分发?

Borland为linux提供了一个解决方案,称为Kylix。Kylix基于一些较旧的Qt内容。 但是我想试试FreePascal/Lazarus,它很酷!编译器为许多不同的平台编译。

我想这就是它的用途。然而,我从未尝试过。(Kylix Delphi+winelib不是为Linux编译的吗?

因为Wine现在是稳定的(不久前达到了1.0版本),所以要求用户使用其Linux软件包管理器安装它是有意义的。这很快也很容易。因此,葡萄酒将始终是最新的,根据分配使用

然后,用Wine安装任何Windows程序都非常容易

由于Delphi可执行文件是可执行的(如果您不使用BDE或某些外部数据库库),因此您的客户机将以“Windows”方式安装Delphi应用程序,即从Wine运行安装程序

它会很好地工作,就像现在一样

据我记忆所及,使用WineLib并不是一个好主意,即使是葡萄酒开发者也不建议这样做。至少对于封闭源码软件来说:在一两年内,也许你不会发布你的程序的另一个版本,但是Wine和WineLib将会有很大的发展。。。如果您使用Wine作为外部软件包,那么您的客户可以确保会有一些最终用户增强功能


如果您的软件是纯开源的,那么使用WineLib是有意义的。但是,即使WineLib头文件也可以进化,因此可能您的源文件不会以相同的速度进化…

有时我认为这可能是不可能的(可能是错误的),因为如果可以轻松完成;embarcadero几年前就可以做到了,当你说Delphi3到7“工作得很好”时,这包括调试器吗?上一次我尝试它时,调试器不起作用。我更喜欢带Delphi的bordaeux。@dummzeuch您是对的,调试器不起作用,但仍然是一个不错的主意使用CodeTyphon/Lazarus/FreePascal将Delphi应用程序转换为不带Wine的本机Linux应用程序。您甚至可以在Windows上开发Linux应用程序,也可以在Linux上开发Windows应用程序。它与许可证不兼容。当然,当有人违反GPL条款时,Stallman会杀死几只兔子。你可以免费使用GPL许可的产品,直到你modify@User,Winelib根据LGPL而不是GPL获得许可。您可以随心所欲地链接它,而无需在同一许可证下发布代码。Vibeeshan,作为一个开发者,你不会仅仅使用它。您将分发链接到它的程序,GNU认为这是一个衍生作品。如果库是GPL,那么您的代码也必须是GPL。(但Winelib不是GPL。)@Vibeeshan:一点也不是。允许修改。不支持与非GPL代码链接。此外,共享软件计划是不允许的,但事实并非如此。ELF二进制文件必须通过wine预加载程序运行。换句话说,它实际上并不比在win32二进制文件上使用wine更方便。上次我尝试wine时,它不会同时调度超过1个线程,这有点令人失望。@David:wine处理线程,有两种模式,具体取决于运行的操作系统:wine kthread或wine pthread。新的NPTL功能在Linux上使用,运行非常好。-我只是创建线程,让它们运行,并期望系统将它们调度到不同的内核上。一切都落在一个核心上。显然需要一些额外的东西,但我无法解决!