Winelib能够在Linux上运行和编译Windows应用程序,不需要Windows。Winelib是Wine项目的一部分。它以开源的方式实施了Win32 API,基于Linux和X Window System(如今常称为Xorg)而建。Winelib的代码与Wine完全共享,能够编译控制台应用程序和GUI应用程序。它还能编译DLL(动态链接库)等库文件。Wine通过下列两种方式来处理Windows源代码。
•提供二进制级的兼容性
二进制级的兼容性可通过Wine本身来获得。在此过程中,应用程序的源代码在Windows平台上编译,然后二进制文件被移到Linux系统上,通过Wine来运行。应用程序在二进制兼容的情况下运行时,它可以使用所有现有的.dll文件。这个过程相当简单,但无法释放Wine子系统的全部功能。这与我们使用Wine来运行微软Office 2007的方式一模一样。
•提供源码级的兼容性
在该方法中,源代码文件被移到Linux系统上,然后使用GCC对照Winelib库来进行编译。这样一来,应用程序还能够与UNIX API调用兼容,以便充分利用UNIX的全部功能。Winelib随带一款名为winemaker的工具,该工具可以通过VC++项目创建基于GNU标准autoconf的makefile文件。Winemaker是一个Perl脚本,负责处理转换源代码、使源代码专门用于UNIX、清空用例问题及其他众多方面的所有繁重任务。










