WindowsでV8 JavaScriptエンジンをコンパイルする
Windows VistaでV8を使いたかったのでビルドしたときのメモ
準備編
- Pythonをインストール(ActivePythonでもいいけど)
- SConsをインストール(PythonのMakeみたいなものらしい)
- Visual C++ 2010 Expressをインストール(本当はSConsだけでもいいけど、必要なWindows SDKが内蔵されてるので楽)
- git か svnがあるとV8のダウンロードが楽
実践編
(X / _ / X <は$みたいなプロンプトです)
バージョンの確認コマンドも打ってますが、How to Download and Build V8 – V8 JavaScript Engine – Google Codeでソフトウェアの必要なバージョンが載っています。
多くの例ではsvnで
svn checkout http://v8.googlecode.com/svn/trunk/ v8
としてv8をダウンロードしているみたいですが、githubに公式ミラーがあるので今回はそれを利用しました。
X / _ / X < git clone git://github.com/v8/v8.git v8 Initialized empty Git repository in D:/Software/v8/.git/ remote: Counting objects: 53075, done. remote: Compressing objects: 100% (7672/7672), done. remote: Total 53075 (delta 46205), reused 51859 (delta 45179) Receiving objects: 100% (53075/53075), 25.18 MiB | 749 KiB/s, done. Resolving deltas: 100% (46205/46205), done. Checking out files: 100% (1426/1426), done. X / _ / X < python -V Python 2.6.4 X / _ / X < scons --version SCons by Steven Knight et al.: engine: v2.0.1.r5134, 2010/08/16 23:02:40, by bdeegan on cooldog Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
ここまでで準備は終わり、次はビルドとテスト
sconsの引数はよく分からなかったのでBuildを見てscons d8としました。
X / _ / X < cd v8 X / _ / X < scons d8 #ビルド X / _ / X < toolstest.py #テスト [13:26|% 100|+ 4599|- 3]: Done
特に環境パスの引数なしでも通ったのでシンプルにしていますが、手動でパスを通す場合は大変なので”C:Program FilesMicrosoft Visual Studio 10.0VCvcvarsall.bat”などのbatファイルを使うとよいかもしれないです。
- v8をビルドしてみました – とりあえずメモメモ。
- Compiling v8 on Windows 7
- BuildingOnWindows – v8 – Detailed instructions for building V8 on Windows. – V8 JavaScript Engine – Google Project Hosting
最後にベンチマークを取ってみて終了
X / _ / X < cd benchmarks X / _ / X < ../d8 run.js Richards: 7311 DeltaBlue: 9098 Crypto: 8762 RayTrace: 6707 EarleyBoyer: 12664 RegExp: 1440 Splay: 2193 ---- Score (version 6): 5521
これで、Windows上で使えるV8(d8)のバイナリ作成ができたので終わり
毎回d8.exeまでのパスを入力するのは大変なので、バイナリの場所までRedmond Pathを使ってパスを通しています。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。