debian, ubuntu, linux mint 64位 链接 libv8 出错 undefined reference to icu_46
==================================================
出错情形:
使用google document自带的例子
g++ -Iinclude hello_world.cc -o hello_world out/x64.release/obj.target/tools/gyp/libv8_{base.x64,snapshot}.a -lpthread
报如下错误
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x68): undefined reference to `uloc_forLanguageTag_46'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x86): undefined reference to `icu_46::Locale::~Locale()'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xbd): undefined reference to `icu_46::Locale::Locale(char const*, char const*, char const*, char const*)'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xd2): undefined reference to `icu_46::Locale::operator=(icu_46::Locale const&)'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xdf): undefined reference to `icu_46::Locale::~Locale()'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x129): undefined reference to `icu_46::Locale::getBaseName() const'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x140): undefined reference to `icu_46::Locale::Locale(char const*, char const*, char const*, char const*)'
i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x176): undefined reference to `icu_46::Locale::~Locale()'
collect2: error: ld returned 1 exit status
出错原因:
某些地方国际化做得不好,一开始可以考虑只是用非国际化的v8版本,在编译v8时加选项取消国际化。
make -j4 native i18nsupport=off werror=no