Hi,

the libc provided together with v8 is incompatible with the msvc-libc.
I had to provide "use_custom_libcxx=false" to be able to link it with my 
own program.


Am Sonntag, 3. November 2019 12:43:57 UTC+1 schrieb Ben Ernst:
>
> Of note, the sample utilities "d8" and "v8_hello_world" build fine, and 
> they don't get this same linker error. I can't see anything I'm doing 
> differently, however.
>
> On Sunday, 3 November 2019 22:08:27 UTC+10:30, Ben Ernst wrote:
>>
>> Thanks Jakob, is there by any chance a correpsonding buildbot for Windows 
>> and MSVC++? I get this linker error from it seems V8 7.2 onwards, although 
>> I'm focussing on 7.8. The "monolith" build seems to be working though. I 
>> wonder if it's an MSVC++ peculiarity that is tripping me up?
>> Regards,
>> Ben
>>
>> On Saturday, 2 November 2019 02:17:38 UTC+10:30, Jakob Kummerow wrote:
>>>
>>> Yes, the component build is expected to work for every version, and our 
>>> buildbot thinks it does: 
>>> https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20shared
>>>
>>> The component build is also the default in Debug mode, which most V8 
>>> developers compile/use every day.
>>>
>>>
>>> On Fri, Nov 1, 2019 at 1:00 AM Ben Ernst <boi...@gmail.com> wrote:
>>>
>>>> Is the idea of a "component build", where you specify 
>>>> "is_component_build=true" in the arguments to GN, actually supposed to 
>>>> work 
>>>> at all in V8 (v7.8)?
>>>>
>>>> In particular, I am getting this unresolved external symbol:
>>>>
>>>> 1>ezv8_platform.obj : error LNK2019: unresolved external symbol 
>>>> "__declspec(dllimport) 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> >)" 
>>>> (__imp_?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)
>>>>
>>>> The function "NewDefaultPlatform" seems to be exported from 
>>>> v8_libplatform.
>>>>
>>>> V8_PLATFORM_EXPORT std::unique_ptr<v8::Platform> NewDefaultPlatform(
>>>>     int thread_pool_size = 0,
>>>>     IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
>>>>     InProcessStackDumping in_process_stack_dumping =
>>>>         InProcessStackDumping::kDisabled,
>>>>     std::unique_ptr<v8::TracingController> tracing_controller = {});
>>>>
>>>> But the destructor of the base class, v8::Platform is not exported.
>>>>
>>>> /**
>>>>  * V8 Platform abstraction layer.
>>>>  *
>>>>  * The embedder has to provide an implementation of this interface 
>>>> before
>>>>  * initializing the rest of V8.
>>>>  */
>>>> class Platform {
>>>>  public:
>>>>   virtual ~Platform() = default;
>>>>
>>>>
>>>> I think that's the cause of the error above, although I may have 
>>>> misinterpreted the error message.
>>>>
>>>> Am I barking up the wrong tree by trying to use the component build at 
>>>> all?
>>>>
>>>> Thanks in advance for any advice.
>>>>
>>>>
>>>>
>>>>

-- 
-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/90d39cd7-0fc1-4730-9da9-9e0cc37bca3c%40googlegroups.com.

Reply via email to