What do these unresolved external symbols mean when building against V8 7.8 "monolithic"?

800 views
Skip to first unread message

Ben Ernst

unread,
Oct 30, 2019, 3:01:58 AM10/30/19
to v8-users
My platform is Windows 10, Visual C++ 2017.

I build a "monolithic" V8, and try to link against it. I am buried under linker errors.

Just a taste below, the rest are attached. Any idea what I might be doing wrong? I don't remotely what I have supposedly done wrong.



1>ezv8_platform.obj : error LNK2019: unresolved external symbol "class std::unique_ptr<class v8::Platform,struct std::default_delete<class v8::Platform> > __cdecl v8::platform::NewDefaultPlatform(int,enum v8::platform::IdleTaskSupport,enum v8::platform::InProcessStackDumping,class std::unique_ptr<class v8::TracingController,struct std::default_delete<class v8::TracingController> >)" (?NewDefaultPlatform@platform@v8@@YA?AV?$unique_ptr@VPlatform@v8@@U?$default_delete@VPlatform@v8@@@std@@@std@@HW4IdleTaskSupport@12@W4InProcessStackDumping@12@V?$unique_ptr@VTracingController@v8@@U?$default_delete@VTracingController@v8@@@std@@@4@@Z) referenced in function "public: __cdecl ezv8::Platform::Impl::Impl(void)" (??0Impl@Platform@ezv8@@QEAA@XZ)
1>node_inspector_agent.obj : error LNK2019: unresolved external symbol "public: static class std::unique_ptr<class v8_inspector::StringBuffer,struct std::default_delete<class v8_inspector::StringBuffer> > __cdecl v8_inspector::StringBuffer::create(class v8_inspector::StringView const &)" (?create@StringBuffer@v8_inspector@@SA?AV?$unique_ptr@VStringBuffer@v8_inspector@@U?$default_delete@VStringBuffer@v8_inspector@@@std@@@std@@AEBVStringView@2@@Z) referenced in function "class std::unique_ptr<class v8_inspector::StringBuffer,struct std::default_delete<class v8_inspector::StringBuffer> > __cdecl inspector::`anonymous namespace'::ToProtocolString(class v8::Isolate *,class v8::Local<class v8::Value>)" (?ToProtocolString@?A0xd3023fdb@inspector@@YA?AV?$unique_ptr@VStringBuffer@v8_inspector@@U?$default_delete@VStringBuffer@v8_inspector@@@std@@@std@@PEAVIsolate@v8@@V?$Local@VValue@v8@@@6@@Z)
1>node_inspector_io.obj : error LNK2001: unresolved external symbol "public: static class std::unique_ptr<class v8_inspector::StringBuffer,struct std::default_delete<class v8_inspector::StringBuffer> > __cdecl v8_inspector::StringBuffer::create(class v8_inspector::StringView const &)" (?create@StringBuffer@v8_inspector@@SA?AV?$unique_ptr@VStringBuffer@v8_inspector@@U?$default_delete@VStringBuffer@v8_inspector@@@std@@@std@@AEBVStringView@2@@Z)
1>node_inspector_agent.obj : error LNK2019: unresolved external symbol "public: static class std::unique_ptr<class v8_inspector::V8Inspector,struct std::default_delete<class v8_inspector::V8Inspector> > __cdecl v8_inspector::V8Inspector::create(class v8::Isolate *,class v8_inspector::V8InspectorClient *)" (?create@V8Inspector@v8_inspector@@SA?AV?$unique_ptr@VV8Inspector@v8_inspector@@U?$default_delete@VV8Inspector@v8_inspector@@@std@@@std@@PEAVIsolate@v8@@PEAVV8InspectorClient@2@@Z) referenced in function "public: __cdecl inspector::CBInspectorClient::CBInspectorClient(class v8::Isolate *,class v8::Platform *)" (??0CBInspectorClient@inspector@@QEAA@PEAVIsolate@v8@@PEAVPlatform@3@@Z)
1>v8_monolith.lib(bytecode-array-random-iterator.obj) : error LNK2001: unresolved external symbol "protected: void __cdecl std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IEBAXXZ)
1>v8_monolith.lib(liftoff-assembler.obj) : error LNK2001: unresolved external symbol "protected: void __cdecl std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IEBAXXZ)
1>v8_monolith.lib(constant-array-builder.obj) : error LNK2001: unresolved external symbol "protected: void __cdecl std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IEBAXXZ)
1>v8_monolith.lib(bytecode-array-writer.obj) : error LNK2001: unresolved external symbol "protected: void __cdecl std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IEBAXXZ)



linker-errors.txt

Simon Zünd

unread,
Oct 30, 2019, 4:10:42 AM10/30/19
to v8-users
Best guess, you linked the V8 monolith static library with the libstdc++ thats pulled in by "gclient sync". The project itself is linked against the standard library of Visual Studio.

There is a GN option for this, try "use_custom_libcxx = false", which will build V8 with the system C++ standard library.

--
--
v8-users mailing list
v8-u...@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+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/22d72edc-a80c-436f-9b7b-d5da1f715fa2%40googlegroups.com.

Ben Ernst

unread,
Oct 30, 2019, 9:05:50 AM10/30/19
to v8-users
Simon
Thank you, I will try that solution today.
Ben
To unsubscribe from this group and stop receiving emails from it, send an email to v8-u...@googlegroups.com.

Ben Ernst

unread,
Nov 1, 2019, 4:42:18 AM11/1/19
to v8-users
Simon,
Thank you, I'm not completely out of the weeds yet, but most of my libraries are now building with your tip "use_custom_libcxx=false".
Cheers,
Ben
Reply all
Reply to author
Forward
0 new messages