開源軟件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