2017-03-18 (土)
最近のV8をVisual Studio上でライブラリとして使うときのメモ.いろんな情報が古かったりして嵌まるので.
Visual Studio 2013のソリューションファイルが生成される
2015と2013両方ある環境では2013が優先されてしまうみたい.そして,2013だとconstexpr周りでエラー出る...
- GYP_MSVS_VERSION=2015 しておく
ドキュメントには2013でもいけると書いてあるので,アップデートしてないせいかもしれない.
ビルド時にPython 2.7が必要
depot_tools は勝手にPython2.7のバイナリをダウンロードしてきて使ってるみたいだけど,Visual Studioからビルドするときもpythonコマンドを実行してるやつがいる.Python3.5だとビルドできない.
- とりあえず, depot_tools/python276_bin にPATHを通しておく.
未だに2.7が世の中で使われてるの,半分はGoogleのせいな気がしている...
size_tをintに入れている
警告をエラーとして扱ってるとビルドできないので,プロジェクトの設定で無視するようにする.
*.lib たくさんある
昔は,v8.lib とかだったみたいですが,なんかたくさんある.
- v8_*.lib と icu*.lib を依存に加える.
natives_blob.binが無いと死ぬ
Isolate::New() するときに GetBuiltinsCount() 内でOS::Abort()が呼ばれて死ぬ.InitializeExternalStartupData() で指定したディレクトリにnatives_blob.binがあれば死なない.
- v8_external_snapshot.lib じゃなくて v8_nosnapshot.lib をリンクする
InitializeExternalStartupData()ではエラーでないので原因わかりにくい.