Mac OS X上でのv8のビルド時のリンクエラー
どのバージョンからかわかりませんが、v8をOS X上でドキュメントに書いてあるようにビルドするとコケます。 具体的には以下のようにビルドすると、
g++ -Iinclude hello_world.cc -o hello_world out/{architecture}/libv8_{base,snapshot}.a -lpthread
リンクで失敗します。
ld: symbol(s) not found for architecture x86_64
これはlibv8_base.a
やlibv8_snapshot.a
以外にもlibicudata.a
, libicui18n.a
, libicuuc.a
などのライブラリが必要だからです。
なのでそれらも全て一緒にビルドすればokです。
g++ -Iinclude hello_world.cc -o hello_world out/{architecture}/*.a -lpthread
もしくはスタティックライブラリのビルド時にi18nsupport=offにしておけば、libv8_base.a
とlibv8_snapshot.a
だけで問題なくビルドできます。
make x64.debug -j4 console=readline i18nsupport=off
ハマってしまったので共有。