将我的Windows应用程序使用winelib编译后提供给Linux用户,是否有任何优势?为什么不直接给他们.exe文件并让他们在Wine上运行呢?似乎这只是徒劳无功的额外工作。
引用自第一章 Winelib介绍 - 1.1. 什么是Winelib?:
使用Winelib重新编译您的应用程序可以获得以下优势:能够直接从Windows源代码中调用Unix API,这使得与Unix环境的集成比在Wine中运行未经修改的Windows应用程序更加完美。 另一个好处是,Winelib应用程序可以相对轻松地在非英特尔体系结构上重新编译并运行,而无需慢速软件模拟处理器。
请参考这里
匿名用户: 我理解这意味着所有使用winelib移植的应用程序都不是真正的Linux二进制文件,而是某种介于win32二进制文件和Linux二进制文件之间的混合物?那么使用winelib移植的优势是什么,与在wine下运行win32二进制文件相比有何优势?
Dimi Paun: 它们是真正的Linux二进制文件(ELF格式),但它们需要一些设置(用于Windows兼容性)在开始之前。但是,确实可以选择运行Win32(PE)可执行文件,速度等同。但使用Winelib端口可以更好地与Unix环境集成,这可能是您想要的“真正的”Linux应用程序。
一个很好的理由是它可能为Wine中的回归提供一些保险。如果您使用Winelib的版本A测试代码,并将该版本静态链接到您的程序中,则新版Wine中的回归不会影响您。
我认为将应用程序分为独立于操作系统的 .exe 文件和几个特定于操作系统的 .dll、.dll.so 和 .dll.dylib 库是有道理的。这些动态库将使得可以从单个 exe 中访问 Mac OS X 和 Linux API。