Yes, that’s true. But fortunately, I don’t use all that stuff that has STL classes in the interface, except libplatform, so works for me, and may work for someone else.
From: 'Bill Ticehurst' via v8-users<mailto:v8-users@googlegroups.com> Sent: Thursday, December 19, 2019 20:43 To: v8-users<mailto:v8-users@googlegroups.com> Subject: Re: [v8-users] Re: Building v8 shared library on windows Just the header file for the public V8 API (https://chromium.googlesource.com/v8/v8.git/+/refs/heads/master/include/v8.h#18<https://chromium.googlesource.com/v8/v8.git/+/refs/heads/master/include/v8.h#18>) includes <memory>, <string>, <type_traits>, <utility>, and <vector> from the C++ standard library. I'm unclear what they are all needed for, but I think it's safe to say mixing C++ standard libraries when building and consuming V8 is always going to be high risk, unsupported, and if you do manage to get it working today - very fragile going forward. - Bill On Thursday, December 19, 2019 at 7:55:52 AM UTC-8, ClearScript Developers wrote: 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 Sent: Wednesday, December 18, 2019 20:22 To: v8-users 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<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 http://groups.google.com/group/v8-users<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. 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<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<mailto:v8-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/c64e6796-74f7-4bbd-9701-750632714cd7%40googlegroups.com<https://groups.google.com/d/msgid/v8-users/c64e6796-74f7-4bbd-9701-750632714cd7%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/CY4PR10MB2023D3D284937B0F77C0675AFF2D0%40CY4PR10MB2023.namprd10.prod.outlook.com.