Winelib的优势是什么?

10

将我的Windows应用程序使用winelib编译后提供给Linux用户,是否有任何优势?为什么不直接给他们.exe文件并让他们在Wine上运行呢?似乎这只是徒劳无功的额外工作。

6个回答

11

1
链接失效了!在archive.org上有个镜像这里 - Chad Zawistowski

10

引用自第一章 Winelib介绍 - 1.1. 什么是Winelib?:

使用Winelib重新编译您的应用程序可以获得以下优势:能够直接从Windows源代码中调用Unix API,这使得与Unix环境的集成比在Wine中运行未经修改的Windows应用程序更加完美。 另一个好处是,Winelib应用程序可以相对轻松地在非英特尔体系结构上重新编译并运行,而无需慢速软件模拟处理器。


基本上,这两个优点是能够调用Unix特定的API(如果我想要保持与Windows兼容性,则不太可能),以及移植到晦涩的架构(抱歉PPC,ARM,SPARC粉丝:P)。 - davr
1
如果你发现自己正在为嵌入式系统进行开发,或者可能是像PS3这样的东西,或者任何没有x86的东西... - supercheetah

5

请参考这里

匿名用户: 我理解这意味着所有使用winelib移植的应用程序都不是真正的Linux二进制文件,而是某种介于win32二进制文件和Linux二进制文件之间的混合物?那么使用winelib移植的优势是什么,与在wine下运行win32二进制文件相比有何优势?

Dimi Paun: 它们是真正的Linux二进制文件(ELF格式),但它们需要一些设置(用于Windows兼容性)开始之前。但是,确实可以选择运行Win32(PE)可执行文件,速度等同。但使用Winelib端口可以更好地与Unix环境集成,这可能是您想要的“真正的”Linux应用程序。


4

一个很好的理由是它可能为Wine中的回归提供一些保险。如果您使用Winelib的版本A测试代码,并将该版本静态链接到您的程序中,则新版Wine中的回归不会影响您。


2
在这个话题上进行一番谷歌搜索似乎表明,编译winelib是改进Wine的一种方法,因为这样可以在编译时提出问题,如果 Wine (因此也包括 winelib) 是一个完美的 win32 api 实现替代品,则不应该出现这些问题。对于你自己的应用程序而言,这是一种检查与Wine兼容性的方法。

1

我认为将应用程序分为独立于操作系统的 .exe 文件和几个特定于操作系统的 .dll、.dll.so 和 .dll.dylib 库是有道理的。这些动态库将使得可以从单个 exe 中访问 Mac OS X 和 Linux API。


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