开源的virtualbox虚拟机提供了源码而且给出了编译环境以及编译步骤,这里只是试验一下
1.准备所需开发包
(1) Visual Studio 2010 SP1
按照官方给的说明(https://www.virtualbox.org/wiki/Windows%20build%20instructions),下载所需的开发库,其中Visual Studio 2010 SP1安装好后,Windows Platform SDK v7.1就不用下载了;
(2) WDK v7.1
Windows Driver Development Kit (WDK) v7.1.按要求下载;
(3) MingW
MingW先下载前两个(gcc-core-3.3.3、gcc-g+±3.3.3),后面的3个不用下载,只需点第一个(Runtime),会跳转到一个页面,提示:“Looking for the latest version? Download mingw-get-inst-20120426.exe (662.7 kB)”,点击它下载安装,安装完后,将刚才下载的gcc-core与gcc-g++解压,并覆盖到安装完的MingW路径中,MingW就算准备完成;
(4) Qt4
下载Qt4,会很大,其实只需用到里面的bin、include、lib、src文件夹;
(5) cURL
再下载cURL,注意要下载devel的无SSL版本;
(6) SDL、zlib
剩下的SDL、zlib按要求下载,有开发版的就下开发版;
(7) openssl 0.9.8x
然后是下载openssl,记着一定要下载0.9.8x版本,太新的版本在后面编译会出问题,我下的是0.9.8y版本。安装openssl需要下载perl,我下载的是ActivePerl。
执行Visual Studio Command Prompt (2010),转到openssl源码的根目录,执行命令:
perl Configure VC-WIN32
执行完后会提示“Configured for VC-WIN32.” 然后执行命令:
ms\do_ms
然后是执行命令进行openssl编译:
nmake -f ms\ntdll.mak
如果没有问题,openssl则安装完毕。这时,需要手动创建include、bin、lib供后面VitualBox编译时使用。将openssl中的include文件夹改名为其它名字,再将inc32重命名为“include”,然后创建bin、lib两个文件夹,将out32dll文件夹中所有的*.lib文件复制到lib文件夹,再将所有*.exe、*.dll文件复制到bin文件夹。到此,openssl开发库准备完毕。
(8) Python 2.7.3
最后是要下载python 2.7.3,在后面编译时会用到。最好下载2.7版本,其它版本在后面编译时会有奇怪的错误。
2.编译VirtualBox
执行Visual Studio Command Prompt (2010),转到virtualbox源码的根目录。执行命令:
cscript configure.vbs --with-MinGW32=C:\VirtualBox\VBoxLib\MinGW --with-libSDL=C:\VirtualBox\VBoxLib\SDL --with-openssl=C:\VirtualBox\VBoxLib\openssl --with-libcurl=C:\VirtualBox\VBoxLib\libcurl --with-Qt4=C:\VirtualBox\VBoxLib\qt
如果没有错误,会出现两个文件:AutoConfig.kmk、env.bat。执行命令:
env.bat
再执行命令进行编译:
kmk
此时,kmk会按顺序把VirtualBox中的源码进行编译和链接,在此过程中会出现一些问题,下面针对这些问题一一进行修正,修正完后,再执行km