Unfortunately this issue transcends export naming. V8 seems to be embracing 
STL data types all over its API.

By sheer luck std::unique_ptr is likely to work across STL implementations 
(at least when used without a stateful deleter), but other data types 
aren't so lucky. V8 already has a bunch of APIs that pass or return 
std::shared_ptr, and that's pretty much guaranteed to fail.

On Wednesday, December 18, 2019 at 1:58:41 PM UTC-5, Ivan Pizhenko wrote:
>
> That’s clear, the instruction under the link suggests to build V8 as 
> static library, which we already know to be working. But the point was to 
> build and use V8 as DLL. Meanwhile, I’ve found following workaround: add 2 
> new custom functions to the libplatform, the first one returns normal 
> pointer extracted from return value of the NewDefaultPlatform() and second 
> to delete v8::Platform object (this is to ensure we use both new and delete 
> from libc++), and export these functions from DLL. This way I’ve gotten rid 
> of dependency on the std::unique_ptr version coming from libc++. And based 
> on this experience I’d generally suggest to V8 developers to keep all 
> public V8 APIs w/o any STL stuff for the sake of better integration with 
> different compilers, which with very high probability have different STL 
> implementations than libc++.
>
> - Ivan
>
>  
>
>  
>
> *From: *'Bill Ticehurst' via v8-users <javascript:>
> *Sent: *Wednesday, December 18, 2019 20:22
> *To: *v8-users <javascript:>
> *Subject: *[v8-users] Re: Building v8 shared library on windows
>
>  
>
> I believe this is still mostly correct - (some filenames might be out of 
> date, but should give you a general starting point). If you're already 
> building V8 successfully with MSVC, you should be able to skip down to the 
> "Embedding V8 into a custom application" part. 
>
>  
>
>
> https://medium.com/angular-in-depth/how-to-build-v8-on-windows-and-not-go-mad-6347c69aacd4
>
>  
>
> Disclaimer: As should be obvious by now (and by the above post), this 
> stuff is a moving target (e.g. changing compilers and build outputs over 
> time), non-trivial, and not a first-class supported scenario. The "well 
> trodden" and best supported path is to build your code via a new BUILD.gn 
> target with Clang along with the rest of V8, that way you can ensure your 
> compiler and build settings are all consistent, and the dependencies are 
> largely managed for you. Good luck!
>
>  
>
>  - Bill
>
> On Wednesday, December 18, 2019 at 3:09:50 AM UTC-8, Bad_At_Life wrote: 
>
> Ok Bill 
>
> Then I'll build it statically with "is_component_build = false". I don't 
> really need them to be dynamic, I just need them to work.
>
> What file extension should I look for? .lib?
>
> Thank you
>
> -- 
> -- 
> v8-users mailing list
> v8-u...@googlegroups.com <javascript:>
> 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-u...@googlegroups.com <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/v8-users/554c96a8-82e1-4a6d-86c7-2a65d51c5797%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/v8-users/554c96a8-82e1-4a6d-86c7-2a65d51c5797%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>  
>

-- 
-- 
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/44b4d4f7-60c1-42b3-adca-fbf656788fe6%40googlegroups.com.

Reply via email to