VirtualBox源码编译

由于VirtualBox项目在6.0版本后仅支持64位。因此,本次编译的版本号为5.2.44,最后一个同时支持32位和64位的版本。

虽然有官方的编译指南,但是该指南并不清晰,并且并不适应所有版本。同样,本指南也并不适用于所有版本,仅在5.2.44上测试通过。

Prerequisites

WIN10

  • 最好是win10虚拟机,因为要开测试模式

VS2010 SP1

  • 必须是vs2010 sp1,而且最好为英文版,同时系统最好也是英文版,否则执行configure.vbs时会找不到cl.exe。需要修改其中的代码。
  • 下载链接:
    Visual studio 2010:
    使用迅雷下载:
    ed2k://|file|en_visual_studio_2010_ultimate_x86_dvd_509116.iso|2446950400|0694CFA0756D8C11499DE5B42E205410|/
    
    SP1:
    ed2k://|file|mu_visual_studio_2010_sp1_x86_dvd_651704.iso|1592336384|C703F08639BBBE0F6F53C694C956F484|/
    

Win DDK 7.1

微软提供的web安装exe无法下载成功,需要找iso。sdk7.1也一样。

WinSDK 7.1

安装失败就先到控制面板卸载vc++ 2010相关组件。

SSL

SDL

qt5

MINGW

  • mingw64
  • mingw32
    • 需要gcc和g++为3.3.x.由于mingw32的gcc不一定是3.3.x,所以需要额外下gcc-core-3.3.3、gcc-g++-3.3.3。并替换到相应目录image
    • gcc_3.3.3
    • g++_3.3.3

python

  • 需要2.7.x版本。

curl

  • 需要同时编译32位和64位版本。

编译脚本

configuration

	SET VS2010VC_DIR=C:\Program Files (x86)\Microsoft Visual Studio 10.0
	SET WINDDK_DIR=C:\WinDDK\7600.16385.1\bin\amd64
	SET DEFAULT_DIR=C:\VBoxBuild_x86
	SET MINGW_DIR=%DEFAULT_DIR%\MinGW\mingw64
	SET SDL_DIR=%DEFAULT_DIR%\SDL\SDL-1.2.11
	SET SSL64_DIR=%DEFAULT_DIR%\SSL\OpenSSL-Win64
	SET SSL32_DIR=%DEFAULT_DIR%\SSL\OpenSSL-Win32
	SET CURL_DIR=%DEFAULT_DIR%\curl\curl-7.64.1
	SET QT_DIR=%DEFAULT_DIR%\Qt\qt-everywhere-opensource-src-5.6.3
	SET QT_BUILD_DIR=%DEFAULT_DIR%\Qt\qt5-x64
	SET VBOX_DIR=%DEFAULT_DIR%\VirtualBox-5.2.44
	SET PYTHON_DIR=C:\Python27
	
	@REM TARGET_ARCH=x86,下面这个编译32位程序
	cscript configure.vbs --with-vc="%VS2010VC_DIR%" --with-qt5="C:\VBoxBuild_x86\Qt\Qt5.6.3-Windows-x86-VS2010-20200104" --with-DDK="%WINDDK_DIR%" --with-MinGW32="C:\VBoxBuild_x86\MinGW\MinGW3.2-gcc3.3.3" --with-libSDL="%SDL_DIR%" --with-openssl="%SSL32_DIR%" --with-libcurl="%DEFAULT_DIR%\curl\x32"  --with-python="%PYTHON_DIR%" --target-arch="x86"
	
	@REM TARGET_ARCH=amd64,下面这个编译64位程序
	@REM cscript configure.vbs --with-vc="%VS2010VC_DIR%" --with-qt5="%QT_BUILD_DIR%" --with-DDK="%WINDDK_DIR%" --with-MinGW-w64="%MINGW_DIR%" --with-libSDL="%SDL_DIR%" --with-openssl="%SSL64_DIR%" --with-openssl32="%SSL32_DIR%" --with-libcurl="%DEFAULT_DIR%\curl\x64" --with-libcurl32="%DEFAULT_DIR%\curl\x32" --with-python="%PYTHON_DIR%"
![image](https://img2024.cnblogs.com/blog/1428025/202407/1428025-20240726173845555-643569424.png)

make

等上述脚本执行后,根据提示,执行env.bat和kmk命令就好。

后续

由于可以参考下面的github那个脚本,因此本文讲的很简略,仅把关键部分讲解了。其中相关组件用上述的替换,并修改相应路径。
尤其是软件版本号,以及configure脚本中,编译32位程序时,需要哪些,而编译64位程序时又要更改哪些,一定不能弄错。

参考

官方指南
build-virtualbox-in-windows

posted @ 2024-07-26 17:49  围城chen  阅读(12)  评论(0编辑  收藏  举报