It looks like you've not linked in the c++ library to your application along with the V8 libraries. You need to link libstlport into your Android app alongside the v8 libraries. See: http://www.kandroid.org/ndk/docs/CPLUSPLUS-SUPPORT.htmlfor details.
Cheers, Ross On 9 March 2014 02:59, Brian Bosak <[email protected]> wrote: > Hi. I've tried to compile a static library version of v8 for Android with > the following command: > make android_arm.release ANDROID_NDK_ROOT=~/Desktop/android-ndk-r9d/ > component=static_library -j32 > This produced the following archive files which I linked to in my Android > project: > libicui18n.a > libicuuc.a > libicudata.a > libv8_base.a > libv8_snapshot.a > > However, when compiling, I get numerous linking errors as shown below: > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/default-platform.o): > in function > v8::internal::DefaultPlatform::~DefaultPlatform():default-platform.cc(.text._ZN2v88internal15DefaultPlatformD2Ev+0xc8): > error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, > unsigned int)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/default-platform.o): > in function std::priv::_Impl_vector<void*, std::allocator<void*> > >::_M_compute_next_size(unsigned > int):default-platform.cc(.text._ZNSt4priv12_Impl_vectorIPvSaIS1_EE20_M_compute_next_sizeEj+0x58): > error: undefined reference to 'std::__stl_throw_length_error(char const*)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/default-platform.o): > in function std::priv::_Impl_vector<void*, std::allocator<void*> > >::_M_insert_overflow(void**, void* const&, std::__true_type const&, > unsigned int, > bool):default-platform.cc(.text._ZNSt4priv12_Impl_vectorIPvSaIS1_EE18_M_insert_overflowEPS1_RKS1_RKSt11__true_typejb+0x4c): > error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned > int&)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/default-platform.o): > in function std::priv::_Impl_vector<void*, std::allocator<void*> > >::_M_insert_overflow(void**, void* const&, std::__true_type const&, > unsigned int, > bool):default-platform.cc(.text._ZNSt4priv12_Impl_vectorIPvSaIS1_EE18_M_insert_overflowEPS1_RKS1_RKSt11__true_typejb+0xcc): > error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, > unsigned int)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/task-queue.o): > in function std::priv::_Deque_base<void*, std::allocator<void*> > >::~_Deque_base():task-queue.cc(.text._ZNSt4priv11_Deque_baseIPvSaIS1_EED2Ev+0x38): > error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, > unsigned int)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/task-queue.o): > in function std::priv::_Deque_base<void*, std::allocator<void*> > >::~_Deque_base():task-queue.cc(.text._ZNSt4priv11_Deque_baseIPvSaIS1_EED2Ev+0x60): > error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, > unsigned int)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/task-queue.o): > in function std::priv::_Deque_base<void*, std::allocator<void*> > >::_M_initialize_map(unsigned > int):task-queue.cc(.text._ZNSt4priv11_Deque_baseIPvSaIS1_EE17_M_initialize_mapEj+0x3c): > error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned > int&)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/task-queue.o): > in function std::priv::_Deque_base<void*, std::allocator<void*> > >::_M_initialize_map(unsigned > int):task-queue.cc(.text._ZNSt4priv11_Deque_baseIPvSaIS1_EE17_M_initialize_mapEj+0x70): > error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned > int&)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libv8_base.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/v8_base.arm/src/libplatform/task-queue.o): > in function std::priv::_Impl_deque<void*, std::allocator<void*> > >::_M_reallocate_map(unsigned int, > bool):task-queue.cc(.text._ZNSt4priv11_Impl_dequeIPvSaIS1_EE17_M_reallocate_mapEjb+0xb0): > error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned > int&)' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function icu_46::Calendar::isEquivalentTo(icu_46::Calendar const&) > const:calendar.cpp(.text._ZNK6icu_468Calendar14isEquivalentToERKS0_+0x1c): > error: undefined reference to 'std::type_info::operator==(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function icu_46::CalendarService::cloneInstance(icu_46::UObject*) > const:calendar.cpp(.text._ZNK6icu_4615CalendarService13cloneInstanceEPNS_7UObjectE+0x24): > error: undefined reference to '__dynamic_cast' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function icu_46::Calendar::createInstance(icu_46::TimeZone*, > icu_46::Locale const&, UErrorCode&) [clone > .part.13]:calendar.cpp(.text._ZN6icu_468Calendar14createInstanceEPNS_8TimeZoneERKNS_6LocaleER10UErrorCode.part.13+0xfc): > error: undefined reference to '__dynamic_cast' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function icu_46::Calendar::createInstance(icu_46::TimeZone*, > icu_46::Locale const&, UErrorCode&) [clone > .part.13]:calendar.cpp(.text._ZN6icu_468Calendar14createInstanceEPNS_8TimeZoneERKNS_6LocaleER10UErrorCode.part.13+0x1ec): > error: undefined reference to '__dynamic_cast' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function typeinfo for > icu_46::BasicCalendarFactory:calendar.cpp(.data.rel.ro._ZTIN6icu_4620BasicCalendarFactoryE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__si_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function typeinfo for > icu_46::DefaultCalendarFactory:calendar.cpp(.data.rel.ro._ZTIN6icu_4622DefaultCalendarFactoryE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__si_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function typeinfo for > icu_46::CalendarService:calendar.cpp(.data.rel.ro._ZTIN6icu_4615CalendarServiceE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__si_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/calendar.o): > in function typeinfo for > icu_46::Calendar:calendar.cpp(.data.rel.ro._ZTIN6icu_468CalendarE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__si_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/coll.o): > in function icu_46::Collator::createUCollator(char const*, > UErrorCode*):coll.cpp(.text._ZN6icu_468Collator15createUCollatorEPKcP10UErrorCode+0xc4): > error: undefined reference to '__dynamic_cast' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/dtptngen.o): > in function typeinfo for > icu_46::UMemory:dtptngen.cpp(.data.rel.ro._ZTIN6icu_467UMemoryE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/format.o): > in function icu_46::Format::operator==(icu_46::Format const&) > const:format.cpp(.text._ZNK6icu_466FormateqERKS0_+0x14): error: undefined > reference to 'std::type_info::operator==(std::type_info const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/measure.o): > in function icu_46::Measure::operator==(icu_46::UObject const&) > const:measure.cpp(.text._ZNK6icu_467MeasureeqERKNS_7UObjectE+0x1c): error: > undefined reference to 'std::type_info::operator==(std::type_info const&) > const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/rbnf.o): > in function icu_46::RuleBasedNumberFormat::operator==(icu_46::Format > const&) > const:rbnf.cpp(.text._ZNK6icu_4621RuleBasedNumberFormateqERKNS_6FormatE+0x28): > error: undefined reference to 'std::type_info::operator==(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/selfmt.o): > in function icu_46::SelectFormat::operator==(icu_46::Format const&) > const:selfmt.cpp(.text._ZNK6icu_4612SelectFormateqERKNS_6FormatE+0x24): > error: undefined reference to 'std::type_info::operator!=(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/tblcoll.o): > in function icu_46::RuleBasedCollator::operator==(icu_46::Collator const&) > const:tblcoll.cpp(.text._ZNK6icu_4617RuleBasedCollatoreqERKNS_8CollatorE+0x34): > error: undefined reference to 'std::type_info::operator!=(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/tzrule.o): > in function > icu_46::InitialTimeZoneRule::isEquivalentTo(icu_46::TimeZoneRule const&) > const:tzrule.cpp(.text._ZNK6icu_4619InitialTimeZoneRule14isEquivalentToERKNS_12TimeZoneRuleE+0x28): > error: undefined reference to 'std::type_info::operator!=(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/tzrule.o): > in function icu_46::AnnualTimeZoneRule::operator==(icu_46::TimeZoneRule > const&) > const:tzrule.cpp(.text._ZNK6icu_4618AnnualTimeZoneRuleeqERKNS_12TimeZoneRuleE+0x28): > error: undefined reference to 'std::type_info::operator!=(std::type_info > const&) const' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/ucal.o): > in function > ucal_setGregorianChange_46:ucal.cpp(.text.ucal_setGregorianChange_46+0x80): > error: undefined reference to '__cxa_bad_typeid' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicui18n.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icui18n/third_party/icu/source/i18n/ucal.o): > in function > ucal_getGregorianChange_46:ucal.cpp(.text.ucal_getGregorianChange_46+0x78): > error: undefined reference to '__cxa_bad_typeid' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicuuc.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icuuc/third_party/icu/source/common/rbbistbl.o): > in function typeinfo for > icu_46::RBBISymbolTable:rbbistbl.cpp(.data.rel.ro._ZTIN6icu_4615RBBISymbolTableE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__vmi_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicuuc.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icuuc/third_party/icu/source/common/uniset.o): > in function typeinfo for > icu_46::SymbolTable:uniset.cpp(.data.rel.ro._ZTIN6icu_4611SymbolTableE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicuuc.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icuuc/third_party/icu/source/common/unifilt.o): > in function typeinfo for > icu_46::UnicodeFilter:unifilt.cpp(.data.rel.ro._ZTIN6icu_4613UnicodeFilterE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__vmi_class_type_info' > /home/brian/Desktop/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: > jni/libicuuc.a(/home/brian/Desktop/android-v8/v8/out/android_arm.release/obj.target/icuuc/third_party/icu/source/common/unifilt.o): > in function typeinfo for > icu_46::UnicodeMatcher:unifilt.cpp(.data.rel.ro._ZTIN6icu_4614UnicodeMatcherE+0x0): > error: undefined reference to 'vtable for __cxxabiv1::__class_type_info' > > Any suggestions? > > Thanks, > > > - Brian Bosak > > -- > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
