使用 winelib 为 Linux 用户编译我的 Windows 应用程序有什么好处吗?为什么不直接给他们 .exe 并让他们用 Wine 运行它呢?看起来就像额外的工作没有收获。
6 回答
引用第 1 章 Winelib 简介 - 1.1。什么是 Winelib?:
通过使用 Winelib 重新编译应用程序,您可以获得直接从 Windows 源代码调用 Unix API 的能力。
与运行在 Wine 中运行的未修改的 Windows 应用程序相比,这允许与 Unix 环境更好地集成。
另一个好处是 Winelib 应用程序可以相对容易地在非英特尔架构上重新编译并在那里运行,而无需对处理器进行缓慢的软件仿真。
您可能想阅读使用 Winelib 的优点和缺点。
看到这个
Anon:我认为这意味着所有基于 winelib 的应用程序都不是真正的 linux 二进制文件——而是一些介于 win32 二进制文件和 Linux 二进制文件之间的混血儿?那么移植>(使用winelib)与在wine下运行win32二进制文件相比有什么优势?
Dimi Paun:它们是真正的 Linux 二进制文件(ELF 格式),但在开始之前需要进行一些设置(对于 >Windows 兼容) 。但是,是的,运行 Win32 (PE) 可执行文件是>真正的可能性,相同的速度等。但是拥有 Winelib 端口可以让你更好地>与 Unix 环境集成,这可能是你想要的“真正的”Linux应用程序。
一个很好的理由是它可以为 Wine 的回归提供一些保障。如果您使用 Winelib A 版本测试您的代码并将该版本与您的程序静态链接,那么较新版本的 Wine 中的回归不会破坏您。
对该主题进行一些谷歌搜索似乎表明,针对 winelib 进行编译是一种通过在编译时添加证据问题来改进 wine 的方法,如果 wine(因此 winelib)是完美的 win32 api 实现替代品,则不应该出现这些问题。对于您的应用程序本身,它是一种检查与 wine 兼容性的方法。
我认为将应用程序划分为独立于操作系统的 .exe 和几个特定于操作系统的 .dll、.dll.so 和 .dll.dylib 库是有道理的。这些动态库将使从单个 exe 访问 Mac OS X 和 Linux API 成为可能。