2017-02 << 2017-03 >> 2017-04

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()ではエラーでないので原因わかりにくい.

2017-02 << 2017-03 >> 2017-04