VirtualBox OSE版 をビルドする †
ここではVirtualBox OSE版のバージョン2.1.4と2.2.2のコンパイル方法を説明します。
バージョン2.1.4と2.2.2の違い、どちらを使ったら良いのかが分からない場合は
仮想PCを活用するを読んで参考にして下さい。
- バージョン3.0.4がリリースされました。3.0.4のコンパイル方法を追記しました。
VirtualBox OSE版のコンパイル方法は公式にはここ
Windows build instructionsに書いてあります。
また、そこに書いてある方法だけでは、なかなかビルドが成功しないので、VirtualBoxのフォーラムへ行くと
Building VirtualBox OSE 2.1.2 on Windowsや
Building VirtualBox OSE 2.2.0 on Windows (use VS2005)など
既にビルドに成功した人が詳しく手順を書いてくれてます。
ここを読めば比較的簡単にビルド出来ます。
上記リンク先に書かれている内容とほとんど同じになりますが、日本語でもう少し詳しく説明します。
- バージョン3.0.4のコンパイルは少々苦労しました。
現地点ではフォーラムにも情報はなく、正常に実行させるまでに時間がかかりましたが成功しましたので情報を追加します。
準備 †
ビルドには Visual Studio が必要です。私は Visual Studio 2005 Professional Edition を使っています。
現在では2008になっていますがおそらく手順は同じだと思います。
Express EditionというフリーのものもありますがExpress Editionでは全てがビルド出来ないようです。
諦めた方がいいかもしれません。簡単に試しましたがダメでした。
詳しく原因を追及していないのでもしかしたら出来るのかもしれませんが、その方法は分かっていません。
service pack 1が適応されたVisual Studioがインストールされている事を前提で話を進めます。
一例としてダウンロードを行ったサイトもコメントしてありますが、リンクがいつ切れるか分からないです。
Windows build instructionsにも書いてありますし
ググってもすぐ見つかるものばかりです。任意の場所からダウンロードして下さい。
- ビルドする場所を決める
ビルドを行う適当なフォルダを用意します。
今回は C:\vboxose\ というフォルダを作りました。
- Windows Driver Development Kit
これもインストールするだけの作業です。
ここWindows Server 2003 DDK
から 1830_usa_ddk.iso ファイルをダウンロードしてインストールして下さい。
私は、CDに焼くのが面倒だったので MagicDisk でマウントしました。
- MinGW
先に用意したビルドフォルダにMinGWセットアップ用フォルダを用意します。
MinGW というフォルダを新規に作成して下さい。
C:\vboxose\MinGWの中に下記5つのファイルを用意します。
- gcc-core-3.3.1-20030804-1.tar.gz
- gcc-g++-3.3.1-20030804-1.tar.gz
- mingw-runtime-3.8.tar.gz
- w32api-3.12-mingw32-dev.tar.gz
- binutils-2.13.90-20021006-2.tar.gz
- mingw32-make-3.81-2.tar.gz
makeはVirtualBoxのコンパイルに必要ありませんが、3.0.4に必要なcURLというライブラリを準備する際に使用しました。
MinGWのセットアップはtar.gzを展開するだけでいいのでダウンロードしたtar.gzを全て展開して下さい。
ファイル名でググればすぐに見つかります。
私はここsourceforge.jpからダウンロードしました。
- libxml2
- libxslt
ダウンロードして展開します。後でビルドもします。
ここIndex of /sources
から下記2つのファイルをダウンロードして展開します。
- libxml2-sources-2.7.3.tar.gz
- libxslt-1.1.24.tar.gz
バージョン3.0.4には上記2つのライブラリが含まれていますので準備の必要はありません。
- VirtualBox
最後にVirtualBox本体です。2.1.4か2.2.2を使うと思いますが、ここ
download.virtualbox.orgに過去にリリースされた全てのバージョンがあります。
- VirtualBox-2.1.4-3-OSE.tar.bz2
- VirtualBox-2.2.2-OSE.tar.bz2
どちらかをダウンロードして展開します。
ここまで作業を進めると下記のようなディレクトリツリーが出来ていると思います。
これはあくまで一例です。configureでパスを指定しますので任意の構成でファイルを準備して下さい。
--- C:\
+--- Program Files\
| +--- Microsoft DirectX SDK (November 2008)
| +--- Microsoft Platform SDK for Windows Server 2003 R2
| +--- Microsoft Visual Studio 8\VC
+--- WINDDK\
| +--- 3790.1830
+--- Python26\ <--- 2.2.2の時のみ必要
+--- vboxose\
+--- libxml2-2.7.3
+--- libxslt-1.1.24
+--- MinGW
+--- qt-win-opensource-src-4.4.3
+--- SDL-1.2.13
+--- VirtualBox-2.1.4_OSE <--- 2.1.4の場合
+--- VirtualBox-2.2.2_OSE <--- 2.2.2の場合
準備2(必要な周辺ライブラリのビルド) †
まずはコンソール画面、いわゆるDOS窓を開きます。
ここで注意です。「スタート-プログラム-アクセサリ-コマンドプロンプト」を使わないこと。
ここで使うのは「スタート-プログラム-Microsoft Visual Studio 2005-Visual Studio Tools-Visual Studio 2005 コマンド プロンプト」
を開いてください。VCコンパイラに必要な環境変数がいくつかセットされます。
※以降タイプするコマンドの例中に「^」が出てきますがこれは長いコマンドを複数行で書く為に「^」で折り返しています。
Linuxコンソールでは「\」を使いますがWindowsでは「^」なんです。こうすると見やすい上にコピペもできるので便利なんです。
- libxml2のビルド
cd C:\vboxose\libxml2-2.7.3 <--ディレクトリの移動
cscript configure.js iconv=no <--コンフィグ
nmake /f Makefile.msvc <--ビルド
nmake /f Makefile.msvc install <--インストール
copy win32\bin\libxml2.dll win32\lib\ <--コピー
この5つのコマンドを実行すればいいだけです。
のはずなのですが、私の場合
なぜか testapi.c の 294 行目が文字化けしていてコンパイルエラーが出ました。
294: if (no == 2) return((xmlChar) ' ');
のように修正。こうすることが正しいのかどうか不明ですがビルドを通す為に手抜きしました。
きちんと解凍すれば問題ないかと。
最後のコピーは忘れずに行って下さい、VirtualBoxはビルド時にlibフォルダに無いとエラーになってしまいます。
- Qt4のビルド
cd C:\vbox214ose\qt-win-opensource-src-4.4.3 <--ディレクトリの移動
configure -release -shared -no-fast -exceptions -accessibility -stl -no-sql-sqlite ^
-no-qt3support -no-opengl -no-dsp -no-vcproj -no-incredibuild-xge -qmake -process ^
-rtti -no-mmx -no-3dnow -no-sse -no-sse2 -no-openssl -no-dbus -no-phonon ^
-no-phonon-backend -no-webkit -no-assistant-webkit -arch windows ^
-qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique ^
-qt-style-cleanlooks -no-style-motif -no-style-cde <--コンフィグ
ライセンスに同意しますか?
と聞いてきますので「y」を回答すると数分後、
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.
と表示されます。ので指示に従い
namke
とタイプします。ビルドは少し時間がかかりますがこれで準備完了です。
私のノートパソコン(1.5GHz)では70分でした。
2.1.4のコンパイル †
- configure.vbsの修正
次にconfigureファイルを一部修正します。
configure.vbs の 1676 行目の
if LogFindFile(strPathXml2, "lib/libxml2.lib") then
を
if LogFindFile(strPathXml2, "lib/libxml2.lib") <> "" then
とします。
さらに、1794 行目と 1797 行目の
if CheckForQtWinFreeSub(strOptQt) then
strPathQt = strOptQt
blnQtWinFree = True
end if
を
' if CheckForQtWinFreeSub(strOptQt) then
strPathQt = strOptQt
blnQtWinFree = True
' end if
と修正します。
- configureの実行
cscript configure.vbs ^
--with-MinGW="C:\vboxose\MinGW" ^
--with-libSDL="C:\vboxose\SDL-1.2.13" ^
--with-libxslt="C:\vboxose\libxslt-1.1.24\win32" ^
--with-libxml2="C:\vboxose\libxml2-2.7.3\win32" ^
--with-DXSDK="C:\Program Files\Microsoft DirectX SDK (November 2008)" ^
--with-Qt="C:\vboxose\qt-win-opensource-src-4.4.3" ^
--with-DDK=C:\WINDDK\3790.1830 ^
--with-VC="C:\Program Files\Microsoft Visual Studio 8\VC"
必要なオプションを指定してconfigureを行います。
- AutoConfig.kmkの修正
次にAutoConfigファイルを一部修正します。
AutoConfig.kmk をエディタで開いて
SDK_VBOX_LIBXML2_LIBS := C:/vboxose/libxml2-2.7.3/win32/lib/libxml2.lib
SDK_VBOX_LIBXSLT_LIBS := C:/vboxose/libxslt-1.1.24/win32/lib/libxslt.lib
という2か所を見つけ、
SDK_VBOX_LIBXML2_LIBS := C:/vboxose/libxml2-2.7.3/win32/lib/libxml2_a.lib
SDK_VBOX_LIBXSLT_LIBS := C:/vboxose/libxslt-1.1.24/win32/lib/libxslt_a.lib
それぞれのファイル名に「_a」を付加します。
さらに最後の行に
VBOX_WITH_QTGUI :=
PATH_SDK_QT4 := C:/vboxose/qt-win-opensource-src-4.4.3
を追加します。
Qt3を使った場合は最後の部分を
PATH_SDK_QT3 := C:/vboxose/qt-3.3.x-p8
PATH_TOOL_QT3_BIN := C:/vboxose/qt-3.3.x-p8/bin
VBOX_WITH_QT4GUI :=
として下さい。
- env.batを実行
env.bat
configureを行うとenv.batが生成されます。
後に、どんなオプションでconfigureを行ったのか忘れてしまった場合はこのファイルの中を見ればコメントとして
オプション引数が残っています。
- ビルド
いよいよビルド開始です。
kmk
ビルドが開始されます。そんなに時間はかかりません。
私のノートパソコン(1.5GHz)では30分かからない程度でした。
2.2.2のコンパイル †
- Python のインストール
2.2.2のコンパイルにはPythonが必要です。
ここからPython標準リリース
Windows用インストーラ python-2.6.1.msi をダウンロードしてインストールして下さい。
- AutoConfig.kmkの修正
次にAutoConfigファイルを一部修正します。
AutoConfig.kmk をエディタで開いて
SDK_VBOX_LIBXML2_LIBS := C:/vboxose/libxml2-2.7.3/win32/lib/libxml2.lib
SDK_VBOX_LIBXSLT_LIBS := C:/vboxose/libxslt-1.1.24/win32/lib/libxslt.lib
という2か所を見つけ、
SDK_VBOX_LIBXML2_LIBS := C:/vboxose/libxml2-2.7.3/win32/lib/libxml2_a.lib
SDK_VBOX_LIBXSLT_LIBS := C:/vboxose/libxslt-1.1.24/win32/lib/libxslt_a.lib
それぞれのファイル名に「_a」を付加します。
さらに最後の行に
VBOX_BLD_PYTHON=C:/Python26/python.exe
を追加します。
- env.batを実行
env.bat
configureを行うとenv.batが生成されます。
後に、どんなオプションでconfigureを行ったのか忘れてしまった場合はこのファイルの中を見ればコメントとして
オプション引数が残っています。
- ビルド
ビルド開始です。
kmk
ビルドが開始されます。そんなに時間はかかりません。
私のノートパソコン(1.5GHz)では23分程度でした。
VirtualBox OSE版 をインストールする †
ビルドが成功すると
C:\vboxose\VirtualBox-2.x.x_OSE\out\win.x86\release\bin
というディレクトリの中に必要なファイルが生成されています。
--- C:\
+--- Program Files\
+--- VirtualBoxOSE\
+--- SUPInstall.exe
+--- SUPLoggerCtl.exe
+--- SUPUninstall.exe
+--- VBoxBFE.exe
+--- VBoxHeadless.exe
+--- VBoxManage.exe
+--- VBoxNetDHCP.exe
+--- VBoxSDL.exe
+--- VBoxSVC.exe
+--- VirtualBox.exe
+--- comregister.cmd
+--- QtCore4.dll
+--- QtGui4.dll
+--- QtNetwork4.dll
+--- SDL.dll
+--- VBoxC.dll
+--- VBoxDD.dll
+--- VBoxDD2.dll
+--- VBoxDDU.dll
+--- VBoxGuestPropSvc.dll
+--- VBoxOGLhostcrutil.dll
+--- VBoxOGLhosterrorspu.dll
+--- VBoxOGLrenderspu.dll
+--- VBoxREM.dll
+--- VBoxREM32.dll
+--- VBoxREM64.dll
+--- VBoxRT.dll
+--- VBoxSettings.dll
+--- VBoxSharedClipboard.dll
+--- VBoxSharedCrOpenGL.dll
+--- VBoxSharedFolders.dll
+--- VBoxVMM.dll
+--- msvcp80.dll
+--- msvcr80.dll
+--- VBoxDD2GC.gc
+--- VBoxDDGC.gc
+--- VMMGC.gc
+--- VBoxDD2R0.r0
+--- VBoxDDR0.r0
+--- VMMR0.r0
+--- nls\
+--- qt_ja.qm
+--- VirtualBox_ja.qm
こんな感じにしました。
※上記Treeは日本語ファイルのみコピーしています。他の言語もコピーすれば選択できるようになります。
VirtualBox.exeを実行すればGUIでのVirtualBoxがスタートします。
仮想PCを活用するに戻る