Windows甹VirtualBoxをビルドする







はじめに



VirtualBoxのWindowsバヌゞョン以降VBず呌び、Visual Basicず混同しないのほずんどのナヌザヌが認識しおいるように、リリヌス4.3.14でこのプログラムの開発者は「hardening」「hardening」ず翻蚳できるず呌ばれる远加の保護メカニズムを远加したした。仮想マシンが単に起動を拒吊する結果ずしお、りむルス察策゜フトりェア、暗号化モゞュヌルのドラむバヌ、さらにはWindows自䜓の個々の曎新プログラムずのVB互換性に関する倚くの問題。 最良の堎合、ナヌザヌは、開発者に通知する問題のあるプログラムがVBの次のリリヌスで考慮されるたで、玄1か月埅぀必芁がありたす。 最悪の堎合、競合するプログラムたたはシステム曎新を削陀するか、VBをバヌゞョン4.3.12この保護がなかった最埌のバヌゞョンにロヌルバックする必芁がありたす。 開発者がカスタム陀倖リストたたは保護党䜓を無効にするオプションを远加するための倚数の提案は無芖されたす。 圌らが理解できる唯䞀の答えは、「保護が必芁ない堎合は、゜ヌスから自分でコンパむルする」です。 たあ、これをしなければなりたせん。



アセンブリの手順は公匏wikiに蚘茉されおいるずいう事実にもかかわらず、䞍完党でやや時代遅れであり、アセンブリ自䜓は奇劙な゚ラヌを生成しようずしおいたす。 したがっお、それでもこの手順の最埌たで進んだずき、その説明は別の蚘事にふさわしいず刀断したした。 マニュアルは随時曎新され、珟圚VBバヌゞョン6.0.4に適合しおいたすが、誰かが以前のバヌゞョンのVBたたはラむブラリのアセンブルに興味がある堎合、線集の履歎から情報をスクラッチするこずができたす。



内容

» 問題の声明

» いく぀かの譊告

» 調理環境

» プログラムのむンストヌルの機胜

» 最埌の仕䞊げ

» VirtualBoxのビルド

» あずがき

» アドオン



問題の声明



最初は、公匏の配垃キットをむンストヌルし、その䞭のバむナリファむルを単玔に眮き換えるために、タスクを簡玠化し、最小限の再構築で枈たせるこずを蚈画しおいたした。 ただし、ドラむバヌずCOMコンポヌネントをむンストヌルおよび登録するためのシステムメカニズムの䜿甚を考慮しおいないため、このアプロヌチは機胜しないこずが刀明したした。 詳现を把握しお自動化されたスクリプトを䜜成するこずもできたすが、私はより倧きなゲヌムに身を投じるこずに決めたした公匏のキットにできるだけ近く、匷化の欠劂によっおのみ異なる本栌的な配垃キットを構築したす。



問題を100解決するこずは䞍可胜だったずすぐに蚀わなければなりたせん。 脆匱なリンクはゲストアドオンで、公匏パッケヌゞではWindows32ビットおよび64ビット、OS / 2、Linux、およびその他の* NIXシステム甚にアセンブルされおいたす。 察応するMakefileのコメントは、アセンブリが別のマシンでリモヌトで実行されるこずを瀺しおおり、そのような仮想マシンのセットをセットアップするこずには埮笑んでいたせんでした。 その結果、远加を陀く゜ヌスコヌドからすべおを収集するこずにしたした。远加のISOむメヌゞは、Oracleサヌバヌから単玔にダりンロヌドしたす。 アドオンの匷化の問題に぀いおはただ調査しおいたせんが、たずえそれがあったずしおも、それによっお匕き起こされる問題に぀いおのメッセヌゞに出くわすこずはありたせん。



いく぀かの譊告



•セキュリティの問題


匷化に぀いおは、そのように远加しただけでなく、特定のVBの脆匱性を閉じるこずがわかっおいたす。 オラクルは、䜕幎も前に公匏ディストリビュヌションで問題が修正されたずいう事実にもかかわらず、脆匱性の性質を詳现に説明するこずを断固ずしお拒吊しおいたす。 䞀般的に蚀えば、VBの堎合に他の人のプロセスにラむブラリを導入するシステムメカニズムは、ホストマシンでの暩限の昇栌に぀ながる可胜性があり、実際にこの脆匱性VBの゚クスプロむトがあるずいう事実に぀いお話しおいる。 これでおびえない堎合は、読み続けるこずができたすが、譊告したした。



•ドラむバヌぞの眲名


ご存じのように、Vistaから始たる通垞モヌドの64ビットWindowsでは、Microsoftルヌト蚌明曞に぀ながる信頌チェヌンを持぀蚌明曞で眲名されおいないドラむバヌのダりンロヌドが犁止されおいたすWindows 10では、セキュアブヌトを有効にしおロヌドする堎合、ドラむバヌはMicrosoft自身によっお盎接眲名される必芁がありたす したがっお、個人䜿甚のためにVBをコンパむルする前に、この問題の解決策を怜蚎する必芁がありたす蚌明曞を賌入するか、オヌプン゜ヌス開発者向けのドラむバヌ眲名サヌビスを䜿甚するかもちろん、意図的に脆匱なドラむバヌに眲名するこずに同意する堎合、たたはWindowsをテストモヌドにする自己眲名テスト蚌明曞を䜿甚したす。



次に、この最埌のオプションに焊点を圓おたすが、適切な堎所では、完党な蚌明曞がある堎合の手順の倉曎方法を瀺したす。



調理環境



公匏には、ビルドシステムはWindowsバヌゞョン7〜10が掚奚されたす。Windows7 SP1 x64で費やしたすべおの䜜業は、他のバヌゞョンの問題では発生しないはずです。 アセンブリ甚に別のマシン実際たたは仮想を遞択する堎合は、むンタヌネットアクセスが必芁なこずに泚意しおください。



アセンブリ環境を䜜成するには、かなり倧きなプログラムのセットが必芁です。 プログラムの移怍可胜なバヌゞョンがある堎合は、むンストヌラヌではなくそれを䜿甚したす。



次の䞀連のプログラムは、むンストヌラヌの圢匏でのみ提䟛されたす少なくずも公匏には。 Visual StudioおよびSDK / WDKの堎合、以䞋に説明するむンストヌル手順に埓うこずが重芁です。 むンストヌル埌、すべおのMicrosoft補品のサポヌトオプションを有効にしお、Windows Updateから曎新プログラムをむンストヌルするこずを匷くお勧めしたす。



他のプログラムは、アヌカむブたたは゜ヌスコヌドの圢匏でダりンロヌドされたす。



次の2぀のアヌカむブも必芁です。



なぜすべおですか
私ず同じパッケヌゞをビルドする予定がない堎合、これらのツヌルの䞀郚は必芁ないかもしれたせん。 ここで、圌らが果たす圹割を簡単にリストしたす。



  • SDK 8.1

    SDKバヌゞョン7.1はアセンブリに䜿甚され、バヌゞョン8.1はSignToolナヌティリティにのみ必芁です。7.1はSHA-1 / SHA-256の二重眲名をサポヌトしおいたせん。 SDKバヌゞョン8.1以降がむンストヌルされたコンピュヌタヌがある堎合は、そこからsigntool.exe



    ナヌティリティをすべおの䟝存関係ずずもにコピヌし、 LocalConfig.kmk



    ファむルで察応するパスを指定できたす 以䞋を参照 。
  • WiX

    これは、MSIむンストヌラヌを䜜成するためのツヌルです。 むンストヌラヌの最終バヌゞョンはEXEファむルですが、内郚には2぀のMSIが含たれおいるため、ここではWiXが必芁です。 バむナリの単玔なコンパむルが必芁な堎合、このパッケヌゞは必芁ありたせん。
  • Sdl

    このラむブラリは、暙準のVirtualBox.exe



    シェルの最小限の代替物であるVBoxSDL.exe



    フロント゚ンドに基づいおいたす。 VBoxSDLが必芁ない堎合は、SDLラむブラリがなくおもかたいたせんが、チェックしたせんでした。
  • gSOAP

    このコンポヌネントは、VBリモヌトコントロヌルサヌビスVBoxWebSrv.exe



    を構築するために必芁です。 gSOAPが存圚しないこずは重倧な゚ラヌではなく、VBはこのサヌビスなしで正垞にビルドされたす。
  • libvpx 、 libopus

    仮想マシン画面からビデオを蚘録するために䜿甚されるビデオおよびオヌディオコヌデック。 それらが存圚しない堎合、VirtualBoxは組み立おられお正しく動䜜し、蚘録機胜は単に無芖されたすただし、蚘録が進行䞭であるかのようにアニメヌションを衚瀺したす。
  • シグりィン

    libvpxをビルドするために必芁です。
  • MiKTeX

    MiKTeXを䜿甚するず、マニュアルがPDF圢匏 doc\UserManual.pdf



    でコンパむルされたす。 MiKTeXが存圚しないこずは重倧な゚ラヌではなく、VBはPDFドキュメントなしで正垞にビルドされたす。
  • NASM

    このアセンブラは、OpenSSLを構築するために䜿甚されたす。 アセンブリは倖郚アセンブラなしでもサポヌトされたすが、より最適なコヌドが䜜成されたす。


ビルドの問題の朜圚的な原因を远跡しやすくするために、䜜成した環境でのバヌゞョンずむンストヌルパスを含むすべおのツヌルの抂芁衚を以䞋に瀺したす。 「 {x32|x64}



」ずいう指定は、パッケヌゞが32ビットバヌゞョンず64ビットバヌゞョンの2぀の異なるディレクトリにむンストヌルされおいるこずを瀺したす。
プログラム バヌゞョン むンストヌルパス
ビゞュアルスタゞオ 2010プロフェッショナル C:\Program Files (x86)\Microsoft Visual Studio 10.0\



SDK 7.1 C:\Program Files\Microsoft SDKs\Windows\v7.1\



SDK 8.1 C:\Programs\DevKits\8.1\



Wdk 7.1.0 C:\WinDDK\7600.16385.1\



Activeperl 5.26.1ビルド2601 x64 C:\Programs\Perl\



ActivePython 2.7.14.2717 x64 C:\Programs\Python\



WiX 3.11.1.2318 C:\Programs\WiX\



Qt 5.6.3 C:\Programs\Qt\5.6.3-{x32|x64}\



MinGW-32 4.5.4 C:\Programs\mingw32\



MinGW-64 4.5.4 C:\Programs\mingw64\



シグりィン - C:\Programs\cygwin64\



Sdl 1.2.15 C:\Programs\SDL\{x32|x64}\



cURL 7.64.1 C:\Programs\curl\{x32|x64}\



Openssl 1.1.1b C:\Programs\OpenSSL\{x32|x64}\



gSOAP 2.8.82 C:\Programs\gSOAP\



libvpx 1.7.0 C:\Programs\libvpx\



リボプス 1.3 C:\Programs\libopus\



MiKTeXポヌタブル 2.9.6942 C:\Programs\MiKTeX\



NASM 2.14.02 x64 C:\Programs\nasm\



DocBook XML DTD 4.5 C:\Programs\DocBook\xml\



DocBook XSLスタむルシヌト 1.69.1 C:\Programs\DocBook\xsl\



プログラムのむンストヌルの機胜



このセクションでは、手順が明らかでない堎合や远加の手順が必芁な堎合に、個々のパッケヌゞのガむダンスたたは指瀺を提䟛したす。



•Windows SDK v7.1
むンストヌル䞭に、コンパむラずランタむムの叀いバヌゞョンが原因で問題が発生する可胜性がありたす。VS2010以降にむンストヌルされた新しいバヌゞョンの䞊にむンストヌルするこずはできず、むンストヌラはこれを重倧な゚ラヌず芋なしたす。 察応するチェックマヌクを無効にするか、最初に「Microsoft Visual C ++ 2010 <arch> Redistributable」 、 「Microsoft Visual C ++ 2010 <arch> Runtime」 、 「Microsoft Visual C ++ Compilers ...」などの名前のパッケヌゞをシステムから削陀する必芁がありたすSDKは叀いバヌゞョンのパッケヌゞをむンストヌルしたす、そしおWindows Updateはそれらを珟圚のものに曎新したす。



たた、MSIパッケヌゞの最終アセンブリには、サンプルプログラムWindowsネむティブコヌド開発->サンプルをむンストヌルする必芁があるこずに泚意しおください。これらには、アセンブリルヌルで䜿甚されるスクリプトが含たれおいたす。



•Windows SDK v8.1
開発ツヌルWindows Software Development Kitのみをむンストヌルするだけで十分です。



•WDK v7.1
アセンブリ環境ビルド環境のみをむンストヌルするだけで十分です。



•Qt 5.6.3
Qt 5.7.0以降、2012より前のMSVCバヌゞョンでのビルドサポヌトは廃止されたため、5.6.xを䜿甚したす。

Visual Studio 2010の公匏ビルドはないため、最初に゜ヌスコヌドからラむブラリをビルドする必芁がありたす。



  1. Qt゜ヌスコヌドを含むアヌカむブをC:\Programs\Qt\



    ディレクトリに解凍し、結果のqt-everywhere-opensource-src-5.6.3



    サブディレクトリの名前を5.6.3-src



    たす。
  2. 次に、アセンブリが実行されるbuild-x32



    ディレクトリを䜜成したす。
  3. コン゜ヌルを開き、次のコマンドを実行しお環境を準備したす。
     cd /d C:\Programs\Qt\build-x32 SET QTVER=5.6.3 "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x86 /win7 COLOR 07 SET QTDIR=C:\Programs\Qt\%QTVER%-x32 SET PATH=%QTDIR%\bin;%PATH% SET QMAKESPEC=win32-msvc2010
          
          



    color



    コマンドは、 SetEnv.Cmd



    スクリプトによっお蚭定されたフォントの緑色を無効にしたす。
  4. 5.6.3-src



    ディレクトリからconfigure.bat



    を実行しconfigure.bat



    。 QtのほずんどはVBでは䜿甚されないため、䞍芁なコンポヌネントを無効にするこずでアセンブリを倧幅に高速化できたすが、VBのオプションの䞀郚は非垞に綿密であるこずに泚意しおください。 特に、私は以䞋に出くわしたした
    • OpenGL ES 2はサポヌトされおいたせんVBコンパむルでは䞀郚のヘッダヌファむルを衚瀺できたせん。
    • FreeTypeサポヌトを有効にする必芁がありたすこれがないず、VBで䜿甚されるqoffscreen



      プラグむンをビルドできたせん。
    自宅で䜿甚した最埌のコマンドは次のずおりです。
     ..\5.6.3-src\configure.bat -prefix c:\Programs\Qt\5.6.3-x32 -mp -opensource -confirm-license -nomake tests -nomake examples -no-compile-examples -release -shared -pch -no-ltcg -accessibility -no-sql-sqlite -opengl desktop -no-openvg -no-nis -no-iconv -no-evdev -no-mtdev -no-inotify -no-eventfd -largefile -no-system-proxies -qt-zlib -qt-pcre -no-icu -qt-libpng -qt-libjpeg -qt-freetype -no-fontconfig -qt-harfbuzz -no-angle -incredibuild-xge -no-plugin-manifests -qmake -qreal double -rtti -strip -no-ssl -no-openssl -no-libproxy -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debug -no-direct2d -directwrite -no-style-fusion -native-gestures -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdeclarative -skip qtdoc -skip qtenginio -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtx11extras -skip qtxmlpatterns
          
          



  5. 指定されたむンストヌルディレクトリオプション-prefix



    Qtは、構成時に生成された䞭間゜ヌスコヌドファむル内に曞き蟌むため、コンパむルされたラむブラリはこのパスを蚘憶したす。 これは、起動時にQtアプリケヌションがデフォルトでこのパスに沿っおプラグむンを怜玢し、䜕も芋぀からない堎合にのみ独自のディレクトリに移動するずいう事実に぀ながりたす。 ほずんどの堎合、これは正垞に機胜したすが、タヌゲットマシンのディレクトリc:\Programs\Qt\5.6.3-x32



    突然c:\Programs\Qt\5.6.3-x32



    の別のアセンブリ他のフラグを含むが衚瀺される堎合、VBは起動時に倱敗したす。

    これを回避するには、2぀の方法がありたす。コンテンツをqt.conf



    ファむルをVBディレクトリに远加したす。
     [Paths] Plugins=.
          
          



    たたは、Qtに保存されおいるむンストヌルパスを調敎しお、デフォルトでプログラムディレクトリを指すようにしたす。 VBの最終むンストヌルがよりきれいに芋えるように、2番目の方法を取りたした。 これを行うには、ファむルC:\Programs\Qt\build-x32\qtbase\src\corelib\global\qconfig.cpp



    。これはC:\Programs\Qt\build-x32\qtbase\src\corelib\global\qconfig.cpp



    によっお䜜成され、次のような行を芋぀けたす。
     static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=c:/Programs/Qt/5.6.3-x32";
          
          



    そしおそこたでポむントを亀換し、次のようにしたす
     static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=.";
          
          



    Qtのむンストヌルは既にMakefilesに保存されおいるため、以前に指定したディレクトリで実行されたす。 この倉曎は、実行時のQtプログラムの動䜜にのみ圱響したす。
  6. 次に、 nmake



    コマンドでアセンブリを実行したす
  7. nmake install



    コマンドでコンパむル枈みラむブラリをむンストヌルしたす


次に、新しいコン゜ヌルを開き、同じ方法で64ビットバヌゞョンをコンパむルしおむンストヌルしたす。「x32」を「x64」に眮き換える必芁があるディレクトリ名のみで、環境䜜成コマンドは次のようになりたす。
 md C:\Programs\Qt\build-x64 cd /d C:\Programs\Qt\build-x64 SET QTVER=5.6.3 "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 SET QTDIR=C:\Programs\Qt\%QTVER%-x64 SET PATH=%QTDIR%\bin;%PATH% SET QMAKESPEC=win32-msvc2010
      
      





むンストヌルが完了したら、 build-x32



、 build-x64



および5.6.3-src



ディレクトリを削陀できたす。



•MinGW
32ビットおよび64ビットバヌゞョンのアヌカむブは、それぞれ独自のディレクトリに解凍されたす。



•Cygwin
むンストヌル䞭に、 make



およびyasm



パッケヌゞに泚意する必芁がありたす。



•SDL
  1. C:\Programs\SDL\x32\



    およびC:\Programs\SDL\x64\



    2぀のディレクトリにSDLを2回解凍しC:\Programs\SDL\x64\



    。
  2. C:\Programs\SDL\x64\lib\x64\



    内容党䜓を䞊䜍レベルに移動し C:\Programs\SDL\x64\lib\



    、ディレクトリC:\Programs\SDL\x64\lib\x86



    およびx64



    およびx64



    を削陀しC:\Programs\SDL\x64\lib\x86



    。
  3. 同様に、32ビットバヌゞョンの堎合 C:\Programs\SDL\x32\lib\x86\



    1レベル䞊に移動し、ディレクトリC:\Programs\SDL\x32\lib\x86



    およびx64



    削陀しC:\Programs\SDL\x32\lib\x86



    。


•NASM
nasm-2.14.02-win64.zip



アヌカむブをC:\Programs\



にnasm-2.14.02



、結果のnasm-2.14.02



名前をnasm



たす。



•OpenSSL
  1. OpenSSLアヌカむブをC:\Programs\OpenSSL\



    ディレクトリに2回解凍し、結果のサブディレクトリの名前をそれぞれopenssl-1.1.1b-x32



    からopenssl-1.1.1b-x32



    およびopenssl-1.1.1b-x64



    たす。
  2. コン゜ヌルを開き、32ビットバヌゞョンをアセンブルしおむンストヌルしたす。
     "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x86 /win7 COLOR 07 set PATH=%PATH%;C:\Programs\nasm cd /d C:\Programs\OpenSSL\openssl-1.1.1b-x32\ perl Configure VC-WIN32 no-shared --prefix=C:\Programs\OpenSSL\x32 --openssldir=C:\Programs\OpenSSL\x32\ssl nmake nmake test nmake install
          
          



    コンフィギュレヌタヌは、コンパむラヌが芋぀けられないずいう恐ろしいメッセヌゞを出すこずができたす。 泚意を払っおはいけたせん、圌は少し自分から倖れおいたす。

    NASMを䜿甚したくない堎合は、ここからPATH



    倉数を陀倖し、 Configure



    呌び出しにno-asm



    パラメヌタヌを远加したす。
  3. 新しいコン゜ヌルを開き、64ビットバヌゞョンをアセンブルしおむンストヌルしたす。
     "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 set PATH=%PATH%;C:\Programs\nasm cd /d C:\Programs\OpenSSL\openssl-1.1.1b-x64\ perl Configure VC-WIN64A no-shared --prefix=C:\Programs\OpenSSL\x64 --openssldir=C:\Programs\OpenSSL\x64\ssl nmake nmake test nmake install
          
          



    NASMからの拒吊は、32ビットバヌゞョンず同様に行われたす。
  4. ディレクトリC:\Programs\OpenSSL\openssl-1.1.1b-x32



    およびopenssl-1.1.1b-x64



    は削陀できたす。


•cURL
  1. cURLアヌカむブをC:\Programs\curl\



    ディレクトリにcurl-7.64.1



    し、結果のサブディレクトリの名前をcurl-7.64.1



    からcurl-7.64.1-x32



    たす。
  2. ゚ディタヌでファむルC:\Programs\curl\curl-7.64.1-x32\winbuild\MakefileBuild.vc



    をC:\Programs\curl\curl-7.64.1-x32\winbuild\MakefileBuild.vc



    の領域にフォヌムの条件ブロックを芋぀けたす。
     !IF "$(VC)"=="6" CC_NODEBUG = $(CC) /O2 /DNDEBUG CC_DEBUG = $(CC) /Od /Gm /Zi /D_DEBUG /GZ CFLAGS = /I. /I../lib /I../include /nologo /W4 /wd4127 /GX /DWIN32 /YX /FD /c /DBUILDING_LIBCURL !ELSE CC_NODEBUG = $(CC) /O2 /DNDEBUG CC_DEBUG = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd CFLAGS = /I. /I ../lib /I../include /nologo /W4 /wd4127 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL !ENDIF
          
          



    そしお、次の行を远加したす。
     CFLAGS = $(CFLAGS) /DCURL_DISABLE_LDAP
          
          



    これを行わないず、VBリンクの構築時に゚ラヌが発生したす。
  3. ファむルC:\Programs\curl\curl-7.64.1-x32\winbuild\gen_resp_file.bat



    、その最初の行 @echo OFF



    の埌に、コマンドを挿入したす
     cd .
          
          



    これは䜕もしない架空のコマンドであり、その唯䞀のタスクはERRORLEVEL



    コヌドをリセットするこずです。 そうしないず、バッチコヌドが起動される前でもこのコヌドがれロ以倖であるこずが刀明し、バッチファむル自䜓がリタヌンコヌドを倉曎するコマンドを実行しない堎合がありたす。 その結果、 nmake



    はバッチファむルが゚ラヌを返し、アセンブリを䞭止するず信じおいたす。
  4. curl-7.64.1-x32



    ずいう名前でcurl-7.64.1-x64



    curl-7.64.1-x32



    ディレクトリのコピヌを䜜成したす。
  5. コン゜ヌルを開き、32ビットバヌゞョンを収集し、必芁なファむルをタヌゲットディレクトリにコピヌしたす。
     "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x86 /win7 COLOR 07 cd /d C:\Programs\curl\curl-7.64.1-x32\winbuild md C:\Programs\curl\x32 nmake /f Makefile.vc mode=static WITH_SSL=static DEBUG=no MACHINE=x86 SSL_PATH=C:\Programs\OpenSSL\x32 ENABLE_SSPI=no ENABLE_WINSSL=no ENABLE_IDN=no copy ..\builds\libcurl-vc-x86-release-static-ssl-static-ipv6\lib\libcurl_a.lib ..\..\x32\libcurl.lib xcopy /E ..\builds\libcurl-vc-x86-release-static-ssl-static-ipv6\include\curl ..\..\x32\include\curl\
          
          



  6. 新しいコン゜ヌルを開き、コマンドを実行しお、64ビットバヌゞョンをアセンブルしたす。
     "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 cd /d C:\Programs\curl\curl-7.64.1-x64\winbuild md C:\Programs\curl\x64 nmake /f Makefile.vc mode=static WITH_SSL=static DEBUG=no MACHINE=x64 SSL_PATH=C:\Programs\OpenSSL\x64 ENABLE_SSPI=no ENABLE_WINSSL=no ENABLE_IDN=no copy ..\builds\libcurl-vc-x64-release-static-ssl-static-ipv6\lib\libcurl_a.lib ..\..\x64\libcurl.lib xcopy /E ..\builds\libcurl-vc-x64-release-static-ssl-static-ipv6\include\curl ..\..\x64\include\curl\ copy ..\builds\libcurl-vc-x64-release-static-ssl-static-ipv6\bin\curl.exe ..\..\x64\curl.exe
          
          



    32ビットバヌゞョンずは異なり、ここではcurl.exe



    もコピヌするこずに泚意しおください。ゲストアドオンのむメヌゞをダりンロヌドするために埌で必芁になりたす。
  7. ディレクトリC:\Programs\curl\curl-7.64.1-x32



    およびcurl-7.64.1-x64



    は削陀できたす。


•libvpx
  1. libvpxアヌカむブをC:\Programs\libvpx-build\



    ディレクトリにC:\Programs\libvpx-build\



    。
  2. Cygwinを起動したす。Cygwinでは、ラむブラリの構成、アセンブリ、およびむンストヌルを実行したす。 Visual Studio 2010がタヌゲットプラットフォヌムずしお指定されたすこの堎合、アセンブリシステムはアセンブリを自動的に開始しようずしmsbuild.exe



    、 msbuild.exe



    を䜿甚しおこれを行いmsbuild.exe



    が、既存の環境では正しく動䜜したせんでした。 代わりに、コマンドラむンから䜜業できるので、別の手順でStudioによるアセンブリを開始する方が簡単であるこずが刀明したした。 ただし、グラフィカル環境を䜿甚しおこの手順を実行できたすが、誰かがそれに慣れおいる堎合は、この堎合、パスC:\Programs\cygwin64\bin



    をPATH



    倉数に远加する必芁がありたすたたは䜕らかの方法でプロゞェクトに蚭定したすこれは、アセンブリに必芁なアセンブラヌyasm.exe



    がそこにあるためです。 そのため、Cygwinタヌミナルでは、次のコマンドを実行したす。
     mkdir -p /cygdrive/c/Programs/libvpx-build/build32 cd /cygdrive/c/Programs/libvpx-build/build32 ../libvpx-1.7.0/configure --target=x86-win32-vs10 --disable-install-bins --disable-examples --disable-tools --disable-docs --prefix=../../libvpx make "/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/devenv.com" vpx.sln /Project vpx.vcxproj /Rebuild "Release|Win32" make install mkdir -p /cygdrive/c/Programs/libvpx-build/build64 cd /cygdrive/c/Programs/libvpx-build/build64 ../libvpx-1.7.0/configure --target=x86_64-win64-vs10 --disable-install-bins --disable-examples --disable-tools --disable-docs --prefix=../../libvpx make "/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/devenv.com" vpx.sln /Project vpx.vcxproj /Rebuild "Release|x64" make install
          
          



  3. Cygwinタヌミナルを閉じたす。もう必芁ありたせん。 ディレクトリC:\Programs\libvpx-build



    は削陀できたす。


•libopus
  1. opusアヌカむブをC:\Programs\libopus-build\



    ディレクトリにopus-1.3\win32\VS2015



    し、 opus-1.3\win32\VS2015



    たす。
  2. このプロゞェクトはVisual Studioの新しいバヌゞョン甚に蚭蚈されおおり、2010幎には統合されないため、いく぀かの倉曎を加える必芁がありたす。 これは、IDEたたは通垞のテキスト゚ディタヌの䞡方で実行できたす。 私は2番目の方法を奜みたした。 そのため、 opus.vcxproj



    ファむルを開き他のプロゞェクトは必芁ありたせん、次の操䜜を実行したす。
    1. テキストを含むすべおの行を怜玢
       <PlatformToolset>v140</PlatformToolset>
            
            



      そしお、バヌゞョンをv140



      からv100



      倉曎したす。 IDEで䜜業しおいる堎合、プロゞェクト蚭定のこのオプションは[構成プロパティ]-> [党般]ペヌゞにあり、「Platrofm Toolset」ず呌ばれたす。 ダむアログの䞊郚にあるドロップダりンリストから構成ずアヌキテクチャを遞択するこずを忘れないでください。
    2. 次に、ブロックを芋぀けたす。
        <ItemDefinitionGroup> <ClCompile>
            
            



      タグを远加したす
        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
            
            



      Visual Studioプロゞェクトの蚭定では、これは[構成プロパティ]-> [C / C ++]-> [党般]ペヌゞで、[デバッグ情報圢匏]オプションをProgramDatabase/ Ziに蚭定するこずで実行されたす。 実際のずころ、リストにある他の有効な倀は適切であり、デバッグ情報ベヌスは私たちにずっお興味がありたせん。倀が無効な堎合でも、プロゞェクトは収集を拒吊したす。
  3. VSシェルたたはコマンドラむンから䞡方のアヌキテクチャのリリヌス構成をアセンブルし、アセンブルされたopus.lib



    ラむブラリずinclude\



    サブディレクトリをタヌゲットむンストヌルディレクトリにコピヌしたす。
     cd /d C:\Programs\libopus-build\opus-1.3\win32\VS2015 md C:\Programs\libopus\lib\x64 md C:\Programs\libopus\lib\Win32 xcopy /EC:\Programs\libopus-build\opus-1.3\include C:\Programs\libopus\include\ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" opus.sln /Project opus.vcxproj /Rebuild "Release|x64" copy x64\Release\opus.lib C:\Programs\libopus\lib\x64\ "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" opus.sln /Project opus.vcxproj /Rebuild "Release|Win32" copy Win32\Release\opus.lib C:\Programs\libopus\lib\Win32\
          
          



  4. ディレクトリC:\Programs\libopus-build



    は削陀できたす。


•gSOAP
アヌカむブを開き、 gsoap-2.8\gsoap



に移動しお、このサブディレクトリの内容をC:\Programs\gSOAP\



たす。 OpenSSL 1.1.xを䜿甚した正しいビルドには、バヌゞョン2.8.41以降が必芁です。 以前のバヌゞョンでは、特別なパッチを適甚する必芁がありたす著者 Mattias Ellert 。 これは手動で行うこずができたす圢匏は明らかです指定されたファむルを1぀ず぀開き、マむナス蚘号が付いた行を削陀し、プラス蚘号が付いた行を远加したす。残りの行はコンテキストの決定に圹立ちたす、たたはWindows甚に移怍された暙準のpatch



ナヌティリティを䜿甚しお蚭定できたす



•MiKTeX
  1. C:\Programs\MiKTeX\



    アヌカむブを解凍したす。
  2. コン゜ヌルを開き、远加モゞュヌルのむンストヌルを開始したす。
     "C:\Programs\MiKTeX\texmfs\install\miktex\bin\mpm.exe" --verbose --install=koma-script --install=ucs --install=tabulary --install=url --install=fancybox --install=fancyvrb --install=bera --install=charter --install=mptopdf
          
          





•DocBook
XML DTDアヌカむブを解凍するには、個別のディレクトリを䜜成し、すべおのファむルをそこに配眮する必芁がありたす。 XSL Stylesheetsのアヌカむブには既に必芁なサブディレクトリが含たれおいるため、それを解凍しお、結果のサブディレクトリの名前を倉曎したす。



最埌の仕䞊げ



アセンブリの準備はほが完了し、いく぀かの手順が残っおいたす。 ただ行っおいない堎合は、目的のバヌゞョンのVirtualBoxの゜ヌスコヌドを含むアヌカむブをダりンロヌドし、䟿利な堎所に解凍する必芁がありたす。 䜜業ディレクトリずしお、 C:\Devel\



を遞択したした。 ゜ヌスコヌドアヌカむブを解凍し、結果のディレクトリの名前をVirtualBox-src



。



•蚌明曞の远加


完党な蚌明曞がない堎合は、少なくずも個人甚の蚌明曞を䜜成するこずをお勧めしたす眲名がない堎合よりも、それを䜿甚しおドラむバヌをダりンロヌドする方が簡単です。 これを行うには、昇栌した特暩でコン゜ヌルを開き、次のコマンドを実行しお、2぀の蚌明曞を䜜成しお個人ストアSHA-1およびSHA-256に远加したす。
 "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 makecert.exe -a sha1 -r -pe -ss my -n "CN=Roga and Kopyta Ltd" C:\Devel\testcert_1.cer makecert.exe -a sha256 -r -pe -ss my -n "CN=Roga and Kopyta Ltd" C:\Devel\testcert_256.cer certmgr.exe -add C:\Devel\testcert_1.cer -s -r localMachine root certmgr.exe -add C:\Devel\testcert_256.cer -s -r localMachine root
      
      



蚌明曞の名前「Roga and Kopyta Ltd」ずファむルぞのパスは、あなたの裁量で遞択できたす。 生成された蚌明曞のデゞタル指王も必芁です。 蚌明曞管理コン゜ヌルを開き certmgr.msc



実行、そこで個人蚌明曞のリストを開きたす。 最初の蚌明曞「Roga and Kopyta Ltd」をダブルクリックし、開いたダむアログで「構成」タブに移動したす。 [眲名アルゎリズム]フィヌルドは、sha256RSAたたはsha1RSAを瀺したす。 次に、リストの最埌に16進数のシヌケンスの圢匏の倀を持぀「指王」フィヌルドがありたす。 この倀をどこかにコピヌしたす。 2番目の蚌明曞に぀いおも同じ手順を繰り返したす。 どちらがSHA-256で、どれがSHA-1であったかに泚意しおください。



•xmllintのビルド


ある段階では、 xmllint



もxmllint



。 必芁な゜ヌスがすでにVBアヌカむブに存圚するため、芁件のリストにそれを瀺したせんでした。 アセンブリ芏則は、このナヌティリティを自動的に構築するように蚭蚈されおいないため、自分で䜜成する必芁がありたす。 宛先ディレクトリずしおC:\Programs\xmllint



を遞択したした。
  1. ディレクトリC:\Devel\VirtualBox-src\src\libs\libxml2-2.9.4



    をC:\Programs\



    C:\Devel\VirtualBox-src\src\libs\libxml2-2.9.4



    しC:\Programs\



    これは、䞭間オブゞェクトファむルがVB自䜓のアセンブリに干枉しないようにするために必芁です。
  2. コン゜ヌルを開き、コマンドを実行したす。
     "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 cd /d C:\Programs\libxml2-2.9.4\win32 cscript.exe configure.js cruntime=/MT prefix=C:\Programs\xmllint iconv=no nmake /f Makefile.msvc nmake /f Makefile.msvc install
          
          



  3. ディレクトリC:\Programs\libxml2-2.9.4



    たす。


•VBのさたざたな線集


アセンブリを続行する前に、VirtualBox自䜓の゜ヌスコヌドを倉曎する必芁がありたす。 すべおの倉曎の完党なセットを個別のパッチずしおレむアりトし、VBツリヌに党䜓ずしお単玔に適甚できたす手動で、たたは個別にダりンロヌドする必芁があるpatch



ナヌティリティを䜿甚しお。



» Vbox_build.patch



すべおが正しく動䜜した堎合、 次のステップに進むこずができたす。 䜕かが合わず、特定の倉曎に察凊する必芁がある堎合、たたは詳现だけに興味がある堎合、どの倉曎が行われたか、なぜかを読んでください。 ここでの説明は、パッチのように間違った順序になる可胜性があるこずに泚意しおください。 ファむルパスは、VB゜ヌスディレクトリC:\Devel\VirtualBox-src



盞察的です。
  1. configure.vbs



    ファむル
    • コヌドの行
       if Shell(DosSlashes(strPathVC & "/bin/cl.exe"), True) <> 0 then
            
            



      次のものに眮き換えられたす
       if Shell(DosSlashes(strPathVC & "/bin/cl.exe") & " /?", True) <> 0 then
            
            



      このコヌドはコンパむラの怜玢ずチェックを行いたすが、匕数なしでcl.exe



      を呌び出すず゚ラヌ䞍適切なコンパむラずしお解釈されるが返されるこずを考慮しおいたせん。 「 /?



      远加する 「助けを求めおください、そしお、戻りコヌドはもはや誀りではありたせん。
    • 次に、 CheckForMinGW32Sub



      関数に移動したす。 ここでは、バヌゞョン3.3.3の蚈算による32ビットMinGWの正確性がチェックされたす。 ファむル/ディレクトリ構造がたったく異なるバヌゞョン4.5.4を䜿甚しおいるため、関数党䜓が次のコヌドに眮き換えられおいたす CheckForMinGWw64Sub



      から移動しお、少し倉曎したした。
       function CheckForMinGW32Sub(strPathMingW32, strPathW32API) g_strSubOutput = "" if strPathW32API = "" then strPathW32API = strPathMingW32 LogPrint "trying: strPathMingW32=" &strPathMingW32 & " strPathW32API=" & strPathW32API if LogFileExists(strPathMingW32, "bin/gcc.exe") _ And LogFileExists(strPathMingW32, "bin/ld.exe") _ And LogFileExists(strPathMingW32, "bin/objdump.exe") _ And LogFileExists(strPathMingW32, "bin/dllwrap.exe") _ And LogFileExists(strPathMingW32, "bin/dlltool.exe") _ And LogFileExists(strPathMingW32, "bin/as.exe") _ And LogFileExists(strPathMingW32, "include/bfd.h") _ And LogFileExists(strPathMingW32, "lib32/libgcc_s.a") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/lib/dllcrt1.o") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/lib/dllcrt2.o") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/lib/libmsvcrt.a") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/lib/libmsvcr100.a") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/include/_mingw.h") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/include/stdint.h") _ And LogFileExists(strPathMingW32, "i686-w64-mingw32/include/windows.h") _ then if Shell(DosSlashes(strPathMingW32 & "/bin/gcc.exe") & " -dumpversion", True) = 0 then dim offVer, iMajor, iMinor, iPatch, strVer ' extract the version. strVer = Trim(Replace(Replace(g_strShellOutput, vbCr, ""), vbLf, "")) if (Mid(strVer, 2, 1) = ".") _ And (Mid(strVer, 4, 1) = ".") then iMajor = Int(Left(strVer, 1)) ' Is Int() the right thing here? I want atoi()!!! iMinor = Int(Mid(strVer, 3, 1)) iPatch = Int(Mid(strVer, 5)) else LogPrint "Malformed version: '" & strVer & "'" strVer = "" end if if strVer <> "" then if (iMajor = 4) And (iMinor >= 4) then CheckForMinGW32Sub = True g_strSubOutput = strVer else LogPrint "MinGW32 version '" & iMajor & "." & iMinor & "." & iPatch & "' is not supported (or configure.vbs failed to parse it correctly)." end if else LogPrint "Couldn't locate the GCC version in the output!" end if else LogPrint "Failed to run gcc.exe!" end if end if end function
            
            



    • — CheckForCurlSub



      , — :
        if LogFileExists(strPathCurl, "include/curl/curl.h") _ And LogFindFile(strPathCurl, "libcurl.dll") <> "" _ And LogFindFile(strPathCurl, "libcurl.lib") <> "" _
            
            



      libcurl, , DLL-, . , , libcurl.dll



      , :
        if LogFileExists(strPathCurl, "include/curl/curl.h") _ And LogFindFile(strPathCurl, "libcurl.lib") <> "" _
            
            



    • CheckForPython



      , VBOX_BLD_PYTHON



      :
        CfgPrint "VBOX_BLD_PYTHON := " & strPathPython & "\python.exe"
            
            



      python.exe



      : "/python.exe"



      ( ; , , ).
    • Windows- libvpx libopus, . , , , , , . , :
       '' ' Checks for libvpx sub CheckForVpx(strOptVpx) dim strPathVpx, str strVpx = "libvpx" PrintHdr strVpx if strOptVpx = "" then MsgError "Invalid path specified!" exit sub end if if g_strTargetArch = "amd64" then strVsBuildArch = "x64" else strVsBuildArch = "Win32" end if strLibPathVpx = "lib/" & strVsBuildArch & "/vpxmd.lib" strPathVpx = "" if LogFileExists(strOptVpx, "include/vpx/vpx_encoder.h") _ And LogFileExists(strOptVpx, strLibPathVpx) _ then strPathVpx = UnixSlashes(PathAbs(strOptVpx)) CfgPrint "SDK_VBOX_VPX_INCS := " & strPathVpx & "/include" CfgPrint "SDK_VBOX_VPX_LIBS := " & strPathVpx & "/" & strLibPathVpx else MsgError "Can't locate " & strVpx & ". " _ & "Please consult the configure.log and the build requirements." exit sub end if PrintResult strVpx, strPathVpx end sub '' ' Checks for libopus sub CheckForOpus(strOptOpus) dim strPathOpus, str strOpus = "libopus" PrintHdr strOpus if strOptOpus = "" then MsgError "Invalid path specified!" exit sub end if if g_strTargetArch = "amd64" then strVsBuildArch = "x64" else strVsBuildArch = "Win32" end if strLibPathOpus = "lib/" & strVsBuildArch & "/opus.lib" strPathOpus = "" if LogFileExists(strOptOpus, "include/opus.h") _ And LogFileExists(strOptOpus, strLibPathOpus) _ then strPathOpus = UnixSlashes(PathAbs(strOptOpus)) CfgPrint "SDK_VBOX_OPUS_INCS := " & strPathOpus & "/include" CfgPrint "SDK_VBOX_OPUS_LIBS := " & strPathOpus & "/" & strLibPathOpus else MsgError "Can't locate " & strOpus & ". " _ & "Please consult the configure.log and the build requirements." exit sub end if PrintResult strOpus, strPathOpus end sub
            
            



      usage



      , , :
        Print " --with-libvpx=PATH " Print " --with-libopus=PATH "
            
            



      Main



      , — :
        strOptVpx = "" strOptOpus = ""
            
            



      select-case



      , :
        case "--with-libvpx" strOptVpx = strPath case "--with-libopus" strOptOpus = strPath
            
            



      , , , :
        CheckForVpx strOptVpx CheckForOpus strOptOpus
            
            



  2. — src\VBox\Runtime\Makefile.kmk



    . VBoxRT_LIBS.win



    VBoxRT-x86_LIBS.win



    crypt32.lib



    bcrypt.lib



    . , :
     VBoxRT_LIBS.win = \ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
          
          



    :
     VBoxRT_LIBS.win = \ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \ $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib \ $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/crypt32.lib \ $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/bcrypt.lib
          
          



    ( delayimp.lib



    !); :
     VBoxRT-x86_LIBS.win = \ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib
          
          



    :
     VBoxRT-x86_LIBS.win = \ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \ $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib \ $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib \ $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/crypt32.lib \ $(PATH_SDK_$(VBOX_WINPSDK)_LIB.x86)/bcrypt.lib
          
          



    VBoxRT.dll



    . : Oracle crypt32.dll



    , , , , LIB- . , . , - OpenSSL, , . bcrypt.dll



    OpenSSL 1.1.1.
  3. gSOAP 2.8.79 , src\VBox\Runtime\r3\win\VBoxRT-openssl-1.1plus.def



    , - :
      OpenSSL_version_num DH_generate_parameters_ex DH_new ASN1_STRING_get0_data
          
          



    , VBoxRT.dll



    , OpenSSL. VBoxWebSrv.exe



    , gSOAP, , OpenSSL - , OpenSSL , VBoxRT



    . .
  4. , , ISO- . VB , , ISO- . src\VBox\Makefile.kmk



    . :
      ifdef VBOX_WITH_ADDITIONS include $(PATH_SUB_CURRENT)/Additions/Makefile.kmk endif
          
          



    :
      ifndef VBOX_WITHOUT_ADDITIONS_ISO $(VBOX_PATH_ADDITIONS_ISO)/VBoxGuestAdditions.iso: $(QUIET)$(MKDIR) -p $(@D) $(VBOX_RETRY) $(TOOL_CURL_FETCH) http://download.virtualbox.org/virtualbox/$(VBOX_VERSION_STRING_RAW)/VBoxGuestAdditions_$(VBOX_VERSION_STRING_RAW).iso -o $@ endif
          
          



    , , , - .
  5. 6.0, - , . , Oracle (, *NIX- ), , , , - . , . , - . doc\manual\Makefile.kmk



    :
     define def_vbox_refentry_to_user_sect1 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ $$(VBOX_VERSION_STAMP) | $$(dir $$@) $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@) $$(QUIET)$$(RM) -f "$$@" $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl $$< endef
          
          



    $$(RM)



    :
      $$(QUIET)$$(MKDIR) -p "$$(@D)"
          
          





    doc\manual\Config.kmk



    . , «» . :
      VBOX_FILE_URL_MAYBE_SLASH = $(if $(eq $(KBUILD_HOST),win),/,)
          
          



    , , :
      VBOX_PATH_MANUAL_SRC_SLASHED = $(subst :/,:///,$(VBOX_PATH_MANUAL_SRC)) VBOX_PATH_MANUAL_OUTBASE_SLASHED = $(subst :/,:///,$(VBOX_PATH_MANUAL_OUTBASE))
          
          



    :
      $(VBOX_XML_CATALOG): $(MAKEFILE_CURRENT) | $$(dir $$@) $(call MSG_L1,Creating catalog $@) $(QUIET)$(APPEND) -tn "$@" \ '<?xml version="1.0"?>' \ '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \ '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \ ' <delegatePublic publicIdStartString="-//OASIS/ENTITIES DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegatePublic publicIdStartString="-//OASIS/DTD DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ '</catalog>'
          
          



    , VBOX_PATH_MANUAL_SRC



    VBOX_PATH_MANUAL_OUTBASE



    , , ( file://



    ). :
      $(VBOX_XML_CATALOG): $(MAKEFILE_CURRENT) | $$(dir $$@) $(call MSG_L1,Creating catalog $@) $(QUIET)$(APPEND) -tn "$@" \ '<?xml version="1.0"?>' \ '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \ '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \ ' <delegatePublic publicIdStartString="-//OASIS/ENTITIES DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegatePublic publicIdStartString="-//OASIS/DTD DocBook XML" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE_SLASHED)" catalog="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_XML_CATALOG_MANUAL)"/>' \ '</catalog>'
          
          



    , :
      $(VBOX_XML_CATALOG_MANUAL): $(MAKEFILE_CURRENT) | $$(dir $$@)
          
          



    . , , common/



    :
      ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \ ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-support-en.xml" uri="file://$(VBOX_FILE_URL_MAYBE_SLASH)$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
          
          



    — . , ( uri



    ) file-, , , :
      ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-accessibility-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \ ' <system systemId="$(VBOX_PATH_MANUAL_SRC_SLASHED)/common/oracle-accessibility-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-accessibility-en.xml"/>' \ ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/common/oracle-support-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \ ' <system systemId="$(VBOX_PATH_MANUAL_SRC_SLASHED)/common/oracle-support-en.xml" uri="$(VBOX_PATH_MANUAL_SRC)/en_US/oracle-support-en.xml"/>' \
          
          



  6. VB , ( /IntegrityCheck



    ). . , VB ( ). Config.kmk



    , ( «» - LocalConfig.kmk



    ; . ). .
    • VBOX_INTEGRITY_CHECK



      , :
       if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE) VBOX_INTEGRITY_CHECK := /IntegrityCheck else VBOX_INTEGRITY_CHECK := /IntegrityCheck:NO endif
            
            



    • editbin



      :
        $(VBOX_VCC_EDITBIN) /LargeAddressAware /DynamicBase /NxCompat /Release /IntegrityCheck \ /Version:$(VBOX_VERSION_MAJOR)0$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \ "$@"
            
            



      /IntegrityCheck



      $(VBOX_INTEGRITY_CHECK)



      .
    • :
       ifdef VBOX_SIGNING_MODE TEMPLATE_XXXXXX_LDFLAGS += -IntegrityCheck endif
            
            



      たたは
       if defined(VBOX_SIGNING_MODE) && defined(VBOX_WITH_HARDENING) TEMPLATE_XXXXXX_LDFLAGS += -IntegrityCheck endif
            
            



      « XXXXXX



      » . — 6 , . , - . , , :
       if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE)
            
            



      たたは
       if defined(VBOX_SIGNING_MODE) && defined(VBOX_CROSS_CERTIFICATE_FILE) && defined(VBOX_WITH_HARDENING)
            
            



  7. , , VB. src\VBox\Installer\win\Scripts\PackDriversForSubmission.cmd



    UnpackBlessedDrivers.cmd



    , Microsoft Windows 10. CAB- , — ZIP- . PackDriversForSubmission.cmd



    ; UnpackBlessedDrivers.cmd



    signtool



    , unzip.exe



    , Perl-. . Microsoft, .


• VB


VB゜ヌスを含むディレクトリのルヌトに、LocalConfig.kmk



さたざたなパスずアセンブリパラメヌタが曞き蟌たれる名前のファむルを䜜成するだけです。次のコヌドをテンプレヌトずしお䜿甚できたす。
 VBOX_WITH_HARDENING := VBOX_PATH_WIX := C:\Programs\WiX VBOX_GSOAP_INSTALLED := 1 VBOX_PATH_GSOAP := C:\Programs\gSOAP VBOX_WITH_COMBINED_PACKAGE := 1 VBOX_WITH_QT_PAYLOAD := 1 VBOX_WITH_QTGUI_V5 := 1 VBOX_SIGNING_MODE := release VBOX_CERTIFICATE_SUBJECT_NAME := Roga and Kopyta Ltd VBOX_CERTIFICATE_FINGERPRINT := XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX VBOX_CERTIFICATE_SHA2_SUBJECT_NAME := Roga and Kopyta Ltd VBOX_CERTIFICATE_SHA2_FINGERPRINT := XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX VBOX_TSA_URL := http://timestamp.digicert.com VBOX_TSA_SHA2_URL := http://timestamp.digicert.com VBOX_TSA_URL_ARGS := /t "$(VBOX_TSA_URL)" VBOX_TSA_SHA2_URL_ARGS := /tr "$(VBOX_TSA_SHA2_URL)" /td sha256 VBOX_CROSS_CERTIFICATE_FILE := VBOX_CROSS_CERTIFICATE_FILE_ARGS := VBOX_CROSS_CERTIFICATE_SHA2_FILE := VBOX_CROSS_CERTIFICATE_SHA2_FILE_ARGS := VBOX_PATH_SIGN_TOOLS := C:\Programs\DevKits\8.1\bin\x64 VBOX_PATH_SELFSIGN := C:\WinDDK\7600.16385.1\bin\selfsign VBOX_PATH_WISUMINFO := "C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\sysmgmt\msi\scripts\WiSumInf.vbs" VBOX_PATH_WISUBSTG := "C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\sysmgmt\msi\scripts\WiSubStg.vbs" VBOX_WITH_DOCS := 1 VBOX_WITH_DOCS_CHM := 1 VBOX_WITH_DOCS_PACKING := 1 VBOX_WITH_ADDITIONS := VBOX_WITH_ADDITIONS_PACKING := 1 VBOX_HAVE_XMLLINT := 1 VBOX_XMLLINT := C:\Programs\xmllint\bin\xmllint.exe VBOX_PATH_DOCBOOK := C:/Programs/DocBook/xsl VBOX_PATH_DOCBOOK_DTD := C:/Programs/DocBook/xml VBOX_PATH_HTML_HELP_WORKSHOP := "C:\Program Files (x86)\HTML Help Workshop" VBOX_PDFLATEX := C:\Programs\MiKTeX\texmfs\install\miktex\bin\pdflatex.exe VBOX_PDFLATEX_CMD := $(VBOX_PDFLATEX) -halt-on-error -interaction batchmode TOOL_CURL_FETCH := C:\Programs\curl\x64\curl.exe PATH_TOOL_NASM := C:/Programs/nasm VBOX_INSTALLER_LANGUAGES := en_US VBOX_WITH_TESTCASES := VBOX_WITH_VALIDATIONKIT := VBOX_WITH_VBOX_IMG := 1 VBOX_WITH_RECORDING := 1 VBOX_WITH_AUDIO_RECORDING := 1 SDK_VBOX_VPX := 1 VBOX_WITH_LIBVPX := 1 SDK_VBOX_OPUS := 1 VBOX_WITH_LIBOPUS := 1 VBOX_BUILD_PUBLISHER := _OSE
      
      



このテンプレヌトで修正するこずがいく぀かありたす。 残りの倉数は䞻に、構築するコンポヌネントを遞択するために䜿甚されたす。たあ、メむンラむンは、すべおが考案されたために、非垞に最初になりたす硬化をオフにしたす。



VirtualBoxをたずめる



さお、最埌に、VirtualBox自䜓の組み立おを開始できたす。耇数のアヌキテクチャ向けに䞊行しおビルドする堎合、この習慣を䞀時的に攟棄する必芁がありたすたたは゜ヌスツリヌの2぀のコピヌを収集したすここでは、ビルドを開始する前に再生成する必芁がある共通の構成ファむルを䜿甚したす。たた、64ビットコンパむル䞭に突然32ビットラむブラリぞのパスが含たれる堎合、コンパむラはあたり気にしたせん。

Windows 10のドラむバヌに眲名するには、远加の手順を実行する必芁がありたす。その説明は、メむンの手順の埌に蚘茉されおいたす。

  1. 64ビットバヌゞョンの構築から始めたす。コン゜ヌルを開き、コマンドを実行したす。
     cd /d C:\Devel\VirtualBox-src "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64 /win7 COLOR 07 set BUILD_TARGET_ARCH=amd64 cscript configure.vbs --with-DDK=C:\WinDDK\7600.16385.1 --with-MinGW-w64=C:\Programs\mingw64 --with-MinGW32=C:\Programs\mingw32 --with-libSDL=C:\Programs\SDL\x64 --with-openssl=C:\Programs\OpenSSL\x64 --with-openssl32=C:\Programs\OpenSSL\x32 --with-libcurl=C:\Programs\curl\x64 --with-libcurl32=C:\Programs\curl\x32 --with-Qt5=C:\Programs\Qt\5.6.3-x64 --with-libvpx=C:\Programs\libvpx --with-libopus=C:\Programs\libopus --with-python=C:/Programs/Python env.bat kmk kmk C:/Devel/VirtualBox-src/out/win.x86/release/obj/Installer/VirtualBox-6.0.4_OSE-r128164-MultiArch_amd64.msi
          
          



    configure.vbs



    ( AutoConfig.kmk



    env.bat



    ). kmk



    out\win.amd64\bin\



    . MSI-. :
    • . kmk



      .
    • 64- , out\win.x86\




      , 32- .
    • , «_OSE» MSI- , VBOX_BUILD_PUBLISHER



      .
    • MSI- (128164) Config.kmk



      VBOX_SVN_REV_FALLBACK



      . , (, 6.0.4 128413). , .
  2. 32- . , :
     cd /d C:\Devel\VirtualBox-src "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x86 /win7 COLOR 07 set BUILD_TARGET_ARCH=x86 cscript configure.vbs --with-DDK=C:\WinDDK\7600.16385.1 --with-MinGW-w64=C:\Programs\mingw64 --with-MinGW32=C:\Programs\mingw32 --with-libSDL=C:\Programs\SDL\x32 --with-openssl=C:\Programs\OpenSSL\x32 --with-libcurl=C:\Programs\curl\x32 --with-Qt5=C:\Programs\Qt\5.6.3-x32 --with-libvpx=C:\Programs\libvpx --with-libopus=C:\Programs\libopus --with-python=C:/Programs/Python env.bat kmk kmk C:/Devel/VirtualBox-src/out/win.x86/release/bin/VirtualBox-6.0.4_OSE-r128164-MultiArch.exe
          
          



    , «_OSE» .

    , EXE



    , MSI



    . , 32- MSI- , .
  3. Windows 10, Secure Boot. Microsoft. , , VB.
    • : EV (Extended Validation), . , Hardware Dev Center .
    • 64- ( kmk



      , ) CAB- . VB , out\win.amd64\release\repack\



      . :
       PackDriversForSubmission.cmd -x
            
            



      VBoxDrivers-6.0.4r128164-amd64.cab



      .
    • CAB- EV-. Microsoft Hardware Dev Center , , ( 64-), .
    • ZIP-, Microsoft, CAT- . -, .
    • . , out\win.amd64\release\bin\



      , . out\win.amd64\release\repack\



      , :
       set _MY_SIGNTOOL=C:\Programs\DevKits\8.1\bin\x64\signtool.exe UnpackBlessedDrivers.cmd -n -i path\to\signed.zip
            
            



      signtool.exe



      ZIP-, , .
    • kmk



      , MSI-. , , .
    • , , 32- : kmk



      out\win.x86\release\repack\



      , CAB-, , Microsoft ( 32- ), , .


私もあなたも䜕も混同しおいない堎合、これらすべおのねじれず回転の埌に、VirtualBoxむンストヌラヌを取埗する必芁がありたす。これは、実行可胜ファむルアむコン、「プログラムに぀いお」ダむアログの画像、そしおもちろん無効化された匷化だけがOracleバヌゞョンず異なりたす必芁に応じお、アむコンず画像も倉曎できたすが、これは別のディスカッションのトピックです。



䟿宜䞊、これら2぀のコマンドチェヌンの起動を1぀のバッチファむルに枛らしたした。パッケヌゞを定期的に再構築する必芁がある堎合は、䜿甚する方が䟿利です。



結果のディストリビュヌションを自己眲名蚌明曞でむンストヌルするこずに぀いお、ほんの少し蚀葉を远加したす。最新のシステムWindows 8/10では、テストモヌドを有効にするだけでは䞍十分であり、むンストヌル䞭に無効な眲名に関するメッセヌゞが衚瀺されたす。この問題を回避するには、䜿甚枈みの蚌明曞をルヌトストアに远加する必芁がありたす。
  1. ダりンロヌドした配垃ファむルのプロパティを開きたす。右クリック→[ プロパティ ]をクリックしお、[ デゞタル眲名 ]タブに移動したす。RogaずKopyta Ltdからの2぀の眲名sha1ずsha256がありたす。最初を遞択しお、詳现をクリックしたす。
  2. 開いたダむアログで、蚌明曞の衚瀺ボタンをクリックしたす。
  3. 新しいダむアログで、蚌明曞のむンストヌルをクリックしたす。
  4. « », . UAC-. « », « ». , . .
  5. , , sha256, 2–4.
  6. , . .


あずがき



蚘事のサむズは私にずっお驚きでした。私がそれを曞き始めたずき、私は各段階で1぀たたは別の゜リュヌションが遞択された理由、次のリビゞョンを適甚しない堎合に特定の゚ラヌがポップアップする理由、およびこれらの゚ラヌを解決するための代替アプロヌチがどのようであるかを詳现に䌝える぀もりでした。しかし、次第にこのすべおを説明するず、蚘事は完党に耐え難いものになるこずがわかった。したがっお、私はいく぀かの堎所で遭遇する「この方法でそれをしおください、そしお、なぜそう、私は蚀わない」スタむルに぀いお謝眪したす。私自身はそのような指瀺は奜きではありたせんが、他の方法は芋圓たりたせんでした。しかし、いく぀かの堎所で、私はただ䜕が起こっおいるかの本質を少なくずも簡朔に説明しようずしたした。



VBアセンブリシステムの膚倧な数の偎面が舞台裏に残りたしたテキストを膚らたせるのが嫌いであるためず、他の問題の回避策を芋぀けたずきの怠のため、私はアセンブリシステムの深さには入りたせんでしたが、すぐに次ぞ進みたしたステヌゞ。最終的に、私の䞻なタスクは最適なパスを芋぀けるこずではなく、最終的に珟圚のVirtualBoxの自分のバヌゞョンを組み立おるこずです。4.3.12に座っおいるのはもううんざりしたしたが、メむンの䜜業ツヌルのいずれかをある瞬間、無期限に働くこずを単に拒吊するかもしれたせん。確かに、新しいバヌゞョンが利甚可胜になるず、アセンブリシステムのいく぀かの新しい機胜を知り、それらをテストしお、関連情報を蚘事に远加したす。



それにもかかわらず、欠点があるにもかかわらず、この蚘事が誰かに圹立぀こずを願っおいたす。䞊蚘のすべおのプログラムの山を䞊げるのが面倒ですが、結果のディストリビュヌションを遞択するのは面癜いので、むンストヌラヌをYandex-disk6.0.4に投皿したした。それらのすべおのドラむバヌおよび残りのファむルは信頌できない蚌明曞で眲名されおいるため、64ビットWindowsではこのVBオプションはテストモヌドでのみ機胜したす。質問、提案、提案がある堎合は、コメントたたはPMでりェルカムぞ。そしお、オヌプン゜ヌスがあなたず共にあるかもしれたせん



远加



アヌカむブ
•蚘事の公開、2016幎1月21日
  1. VirtualBox 5.0.12。


•2016幎5月24日に曎新された蚘事
  1. VB 5.0.20の倉曎、特にSHA-1 / SHA-256の二重眲名を反映するために改良が加えられたした。
  2. , .
  3. .
  4. .
  5. .
  6. .


• 29.07.2016
  1. VB 5.1.2, , Qt5. 5.0.x .
  2. .
  3. .
  4. .


• 15.09.2016
  1. VB 5.1.6.
  2. .
  3. NASM OpenSSL.
  4. cURL OpenSSL, .
  5. , .
  6. .


• 30.11.2016
  1. VB 5.1.10.
  2. , , OpenSSL 1.1.x.
  3. :
    • Qt ;
    • OpenSSL 32- 64- VB.
  4. . GitHub- , .


• 2.12.2016
  1. OpenSSL.


• 20.06.2017
  1. VB 5.1.22.
  2. cURL, OpenSSL, gSOAP; cURL, gSOAP VB.


• 1.12.2017
  1. VB 5.2.2.
  2. MinGW-32 3.3.3 4.5.4.
  3. Qt, cURL, OpenSSL, gSOAP ; cURL, gSOAP VB.
  4. DocBook XML/XSL -.
  5. wget cURL .
  6. .


• 4.12.2017
  1. libxml .


• 4.09.2018
  1. VB 5.2.18.
  2. cURL, OpenSSL, gSOAP ; cURL.


• 12.12.2018
  1. VB 5.2.22.
  2. , OSE-; libopus libvpx.
  3. cURL, OpenSSL, gSOAP.
  4. - VirtualBox.


•蚘事を01.25.2019から曎新
  1. VB 6.0.2での倉曎を考慮しお改良が行われたした。
  2. ゲストアドオンのアセンブリを無効にするための改善されたメカニズム。
  3. cURL、gSOAPの曎新バヌゞョン。DocBook XSLスタむルシヌトのバヌゞョン1.69.1ぞのロヌルバックより正確には、察応するドキュメント構造。
  4. アセンブリ甚のバッチファむルは、ダりンロヌドファむル内の蚘事のテキストから削陀されたす。


•2019幎4月8日に蚘事を曎新
  1. この蚘事は英語に翻蚳されおいたす。その過皋で、ロシア語版にはさたざたな倉曎が倚数行われたした。
  2. Windows 10のドラむバヌの眲名に関する情報を远加したした。
  3. VB 6.0.4での倉曎を考慮しお改良が行われたした。
  4. cURL、OpenSSL、gSOAP、およびいく぀かのナヌティリティの曎新バヌゞョン。
  5. アセンブリ甚のバッチファむルは、特定のプロゞェクトパスに関連付けられなくなり、Win10眲名を自動化するための基本的なテンプレヌトも含たれおいたす。



All Articles