Well, there is no linker problem if v8_snapshot is used. Linker problem for
v8_nosnapshot only.

As for the libs order, I  used a combined library created by the following
commands bellow. Order had been adjusted. Not working.


ar -rcsD libv8_base.a ../v8_base/*.o
> ar -rcsD libv8_base.a ../v8_libplatform/*.o
> ar -rcsD libv8_base.a ../v8_libbase/*.o
> ar -rcsD libv8_base.a ../v8_libsampler/*.o
> ar -rcsD libv8_base.a ../src/inspector/inspector/*.o



Zac Hansen <xax...@gmail.com> 于2018年8月16日周四 上午2:09写道:

> you can always just throw all the libs at the linker twice, too, if you're
> not sure the order..
>
> On Wednesday, August 15, 2018 at 6:04:49 AM UTC-7, ibon wrote:
>>
>> I avoid linker problems by properly sorting the libraries.
>> The linker is sequential, and will fail if a given symbol is not present
>> by the time it is referenced, regardless it is in another to link lib.
>>
>> This is a sort order that worked for me.
>>  v8_base v8_libplatform v8_libbase v8_libsampler v8_snapshot v8_inspector
>>
>> Other than that, I now make one single lib file will all v8 code in it.
>> Not only to avoid linker errors, but to make my life easier by
>> substantially reducing my mk file size.
>>
>> hope this helps.
>>
>>
>> El martes, 14 de agosto de 2018, 9:02:07 (UTC+2), young louis escribió:
>>>
>>> I have a similar problem when embeding V8  6.8 to android.  An error is
>>> reported while linking libv8_nosnapshot.a, briefly
>>>
>>>
>>> *../../src/isolate.cc:0: error: undefined reference to 'vtable for
>>> v8::internal::SetupIsolateDelegate'*
>>>
>>> Can anyone help, please.
>>>
>>> 在 2018年4月13日星期五 UTC+8下午6:37:57,Coulson Chen写道:
>>>>
>>>> I build v8 static libraries for android successfully(using V8 6.5), and
>>>> then embed it in andoid app(using the hello-world.cc demo from official
>>>> wiki. Android studio 3.1,Cmake),but error  like the follow takes place
>>>> while building the APK
>>>> Build command failed.
>>>> Error while executing process
>>>> /usr/local/v8/v8/third_party/android_tools/sdk/cmake/3.6.4111459/bin/cmake
>>>> with arguments {--build
>>>> /mnt/share/V8Wrapper/app/.externalNativeBuild/cmake/debug/armeabi-v7a
>>>> --target native-lib}
>>>> [1/2] Building CXX object
>>>> CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
>>>> [2/2] Linking CXX shared library
>>>> ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
>>>> FAILED: : &&
>>>> /usr/local/v8/v8/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
>>>> --target=armv7-none-linux-androideabi
>>>> --gcc-toolchain=/usr/local/v8/v8/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
>>>> --sysroot=/usr/local/v8/v8/third_party/android_ndk/sysroot -fPIC -isystem
>>>> /usr/local/v8/v8/third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi
>>>> -D__ANDROID_API__=16 -g -DANDROID -ffunction-sections -funwind-tables
>>>> -fstack-protector-strong -no-canonical-prefixes -march=armv7-a
>>>> -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb
>>>> -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -std=c++11
>>>> -frtti -fexceptions -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a
>>>> -Wl,--exclude-libs,libatomic.a --sysroot
>>>> /usr/local/v8/v8/third_party/android_ndk/platforms/android-16/arch-arm
>>>> -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings
>>>> -Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a
>>>> -L/usr/local/v8/v8/third_party/android_ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
>>>> -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro
>>>> -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o
>>>> ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
>>>> CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
>>>> /usr/local/v8/v8/third_party/android_ndk/platforms/android-16/arch-arm/usr/lib/liblog.so
>>>> -landroid ../../../../src/main/cpp/armeabi-v7a/libv8_base.a
>>>> ../../../../src/main/cpp/armeabi-v7a/libv8_nosnapshot.a -latomic -lm
>>>> "/usr/local/v8/v8/third_party/android_ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++.a"
>>>> && :
>>>> ../../src/isolate.cc:0: error: undefined reference to 'vtable for
>>>> v8::internal::SetupIsolateDelegate'
>>>> /usr/local/v8/v8/third_party/android_ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld:
>>>> the vtable symbol may be undefined because the class is missing its key
>>>> function
>>>> clang++: error: linker command failed with exit code 1 (use -v to see
>>>> invocation)
>>>> ninja: build stopped: subcommand failed.
>>>>
>>>> the key point is " 'vtable for v8::internal::SetupIsolateDelegate'",is
>>>> the libv8_base.a  not correct?
>>>>
>>>> Any help is appreciated!
>>>>
>>> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> 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 v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
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 v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to