Skip to the content.

Virtualbox源码编译

1. 下载源代码

环境 : Ubuntu 22.04 for x64

Virtualbox-7.0.10.tar.bz2.

2. 配置环境

  1. 安装dev-base
$ sudo apt install build-essential flex bc bison gawk texinfo file ssh git unzip
$ sudo apt install gcc-12 g++-12 lib32gcc-12-dev gcc-12-multilib g++-12-multilib
  1. 重定向gcc
$ sudo ln -s /bin/gcc-12 /bin/gcc
$ sudo ln -s /bin/g++-12 /bin/g++
  1. 安装依赖
$ sudo apt install acpica-tools chrpath doxygen libasound2-dev libcap-dev lib32stdc++6  \
        libcurl4-openssl-dev libdevmapper-dev libidl-dev libopus-dev libpam0g-dev       \
        libpulse-dev libqt5opengl5-dev libqt5x11extras5-dev qttools5-dev libsdl1.2-dev  \
        libsdl-ttf2.0-dev libssl-dev libvpx-dev libxcursor-dev libxinerama-dev          \
        libxml2-dev libxml2-utils libxmu-dev libxrandr-dev make nasm python3-dev        \
        qttools5-dev-tools texlive texlive-fonts-extra texlive-latex-extra unzip        \
        xsltproc default-jdk libstdc++5 libxslt1-dev linux-kernel-headers makeself      \
        mesa-common-dev subversion yasm zlib1g-dev glslang-tools libc6-dev-i386
  1. 链接库
ln -s libX11.so.6    /usr/lib32/libX11.so 
ln -s libXTrap.so.6  /usr/lib32/libXTrap.so 
ln -s libXt.so.6     /usr/lib32/libXt.so 
ln -s libXtst.so.6   /usr/lib32/libXtst.so
ln -s libXmu.so.6    /usr/lib32/libXmu.so
ln -s libXext.so.6   /usr/lib32/libXext.so

3. 编译

  1. 配置
$ ./configure --disable-hardening
  1. 设置环境
$ source ./env.sh
  1. 编译

Release:

$ kmk all

Debug:

$ kmk BUILD_TYPE=debug

如果编译不过, 则可以使用如下编译方法:

$ kmk BUILD_TYPE=debug -i

运行编译生成的可执行文件:

$ cd out/linux.amd64/debug/bin/
$ ./VirtualBox