开源软件VBox软件编译


      闲来无事,研究一下VBox软件,在此记录下编译历程,供各位过路大侠围观,若有想与本渣交流者,可以给我发邮件(saltape@163.com),(本来想开个公众号,太懒了,一直没搞,此处手动狗头)。

   开源软件VBox是一款虚拟机软件,没怎么使用过,看着界面简洁,装了个ubuntu,还不错。废话不多说,下面开始记录下手工编译过程,官网有编译指导(https://www.virtualbox.org/wiki/Windows%20build%20instructions),奈何指导不全,手工编译还是有一堆问题。  

      源码版本:VirtualBox-6.0.12 (https://www.virtualbox.org/wiki/Downloads)

      编译依赖开发工具:

  • Visual Studio 2010 with service pack 1
  • Windows Platform SDK v7.1
  • Windows Driver Development Kit (WDK) v7.1
  • Qt v5.6.x or later
  • SDL v1.2.7 or later
  • the cURL library.(这个需要下载源码,自己编译)
  • Yasm 1.3
  • Python 2.7.x
  • code signing utilities(WDK中有)
  • openssl-1.1.1d(这个也是手工编译,需要编译出32和64位版本,d是开发版本)
  • the zlib library

    工具就这些,这其中比较复杂的有几部分,其中qt、curl及openssl都是需要手工编译的

    工具编译:

  1. qt5.6.3编译
  2. curl编译  
  3.  openssl编译

     准备工作差不多了,下面进入VBox的编译过程:

         1. 依次安装上述的工具或源码

         2. 编写一个*.bat的脚本,主要用来省去每次编译需要手动设置环境变量的过程,脚本内容如下(路径可根据自身做相应修改):   

 1 echo "win64"
 2 set PATH=%PATH%;D:\project\jobs\test\VirtualBox-6.0.12\VirtualBox-6.0.12\kBuild\bin\win.amd64;
 3 set PATH=%PATH%;D:\project\jobs\test\VirtualBox-6.0.12\VirtualBox-6.0.12\kBuild\bin\darwin.amd64;
 4 set PATH=%PATH%;D:\software\vmBoxTools\wdk7.1;
 5 set PATH=%PATH%;D:\software\vmBoxTools\wdk7.1\bin;
 6 set PATH=%PATH%;D:\software\vmBoxTools\vs2010\Common7\IDE;
 7 set PATH=%PATH%;D:\software\vmBoxTools\vs2010\VC\bin;
 8 set PATH=%PATH%;D:\software\vmBoxTools\vs2010\Common7\Tools;
 9 set PATH=%PATH%;D:\software\vmBoxTools\vs2010\VC\vcpackages;
10 set PATH=%PATH%;D:\software\vmBoxTools\vs2010\VC\bin\amd64;
11 set PATH=%PATH%;D:\software\vmBoxTools\mingw64\bin;
12 echo run configure.vbs
13 cscript configure.vbs --with-MinGW-w64=D:\software\vmBoxTools\mingw64 --with-sdk=D:\software\vmBoxTools\windowsSDK71 --with-libSDL=D:\software\vmBoxTools\SDL2-2.0.14-win32-x64 --disable-sdl --with-openssl32=D:\software\vmBoxTools\x86\openssl32 --with-openssl=D:\software\vmBoxTools\x64\openssl64 --with-libcurl=D:\software\vmBoxTools\x64\libcurl64 --with-libcurl32=D:\software\vmBoxTools\x86\libcurl32  --with-Qt5=D:\project\opensource\qt-everywhere-opensource-src-5.6.3\qtbase  --with-python=D:\software\vmBoxTools\py2.7  --with-vc=D:\software\vmBoxTools\vs2010\VC 
14 
15 echo run env.bat
16 call "D:\software\vmBoxTools\vs2010\VC\vcvarsall.bat" amd64
17 call env.bat
18 call kbuild\envwin.cmd --win64 --release
19 
20 echo kmk start,please use kmk to build manually
21 ::kmk > result.txt
22 pause

         3.设置一些编译选项,在源码根目录下建立一个文件LocalConfig.kmk

 1 # -*- Makefile -*-
 2 #
 3 # Overwrite some default kBuild settings
 4 #
 5 
 6 #
 7 # Copyright (C) 2006-2017 Oracle Corporation
 8 #
 9 # This file is part of VirtualBox Open Source Edition (OSE), as
10 # available from http://www.virtualbox.org. This file is free software;
11 # you can redistribute it and/or modify it under the terms of the GNU
12 # General Public License (GPL) as published by the Free Software
13 # Foundation, in version 2 as it comes in the "COPYING" file of the
14 # VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 # hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 #
17 VBOX_PATH_SIGN_TOOLS :=D:\software\vmBoxTools\wdk7.1\bin\amd64\SignTool.exe
18 VBOX_INF2CAT :=D:\software\vmBoxTools\wdk7.1\bin\selfsign\inf2cat.exe
19 # don't build testcases to save time, they are not needed for the package
20 VBOX_WITH_TESTCASES        :=
21 VBOX_WITH_VALIDATIONKIT    :=
22 
23 # required for VBOX_WITH_RUNPATH
24 #VBOX_WITH_ORIGIN           :=
25 VBOX_WITH_ADDITIONS :=
26 BOX_WITH_ADDITIONS_PACKING :=
27 VBOX_WITH_VALIDATIONKIT :=
28 VBOX_WITH_WEBSERVICES :=
29 VBOX_WITHOUT_HARDENING :=
30 KBUILD_TARGET_ARCH :=amd64
31 KBUILD_TYPE :=debug
32 VBOX_SIGNING_MODE :=test
33 VBOX_WITH_COMBINED_PACKAGE=1
34 #code singed path
35 VBOX_PATH_SIGN_TOOLS :=D:\software\vmBoxTools\wdk7.1\bin\amd64
36 VBOX_INF2CAT :=D:\software\vmBoxTools\wdk7.1\bin\selfsign\Inf2Cat.exe

           4. 做完以上步骤,打开vs2010的command工具,进入vbox的源码根目录,执行以下两个步骤即可

                4.1 make.bat

                4.2 kmk,至此vbox编译步骤结束 

               

                

                4.3 以上两个步骤完成后,如果没有报错,会在源码根目录下生成out\win.amd64\debug\bin

                4.4 cd out\win.amd64\debug\bin; 

                      comregister.cmd //驱动注册 

                      loadall.cmd

                4.5  可以在bin下看到vbox*.exe,执行即可运行。

编译过程中遇到的问题:

     问题较多,可能是本渣太渣,就不贴了,如果有兴趣,请在下面留言交流

                

 

 ps:有兴趣的小伙伴在下方留言,希望与大家共同成长

欢迎有兴趣的小伙伴,关注我的公众号,一起来学呀

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM