Right, to confirm:
- either use `use_custom_libcxx = true` (which is also the default), then
V8 will use its own bundled copy of libc++, so you'll need to configure the
rest of your project to either use the exact same libc++ or at least a
compatible version. (I don't know how to do that with cmake.)
- or use `use_custom_libcxx = false`, then V8 will use your system's
default, which is typically libstdc++. That's typically the easiest setup
to get working, because you don't need to do anything special for the rest
of your project's build configuration.


On Wed, Dec 4, 2024 at 10:55 AM Ben Noordhuis <i...@bnoordhuis.nl> wrote:

> On Wed, Dec 4, 2024 at 6:00 AM Grant Upson <grantaup...@gmail.com> wrote:
> >
> > Hi everyone,
> >
> > I'm trying to embed V8 into a C++ project currently and keep
> encountering issues when linking V8. Currently i'm following the
> instructions on https://v8.dev/docs/embed and doing this on Linux. After
> building V8 with these parameters
> >
> >
> > gn gen out.gn/library --args='is_debug=false is_component_build=false
> v8_enable_i18n_support=false use_custom_libcxx=false is_clang=true
> v8_monolithic=true target_cpu="x64" v8_use_external_startup_data=false'
> >
> >
> > and attempting to link to the libv8_monolith.a static library it throws
> a bunch of undefined reference errors to the standard library e.g.,
> >
> > ld.lld: error: undefined symbol: std::basic_ios<char,
> std::char_traits<char>>::init(std::basic_streambuf<char,
> std::char_traits<char>>*)
> > >>> referenced by logging.cc
> >
> > I've setup my default compiler to use clang with the LLVM standard
> library and using nm have determined that V8 is being built with clang and
> the LLVM std library since it outputs std::__1:: function symbols.
> >
> > I've also forced libc++ to be used in the cmake project that is trying
> to link to the V8 library with cmake commands like so
> >
> > set(CMAKE_CXX_STANDARD_LIBRARIES "-stdlib=libc++")
> > set(CMAKE_C_FLAGS "-stdlib=libc++")
> > set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++
> -lc++abi")
> >
> > I'm really at a loss at what could be causing this issue because both
> the library and my project should be using the same standard library. Any
> advice?
>
> In your other email you didn't have use_custom_libcxx=false set. Did
> you do a clean/full rebuild after changing it?
>
> FWIW, I believe V8 links to libstdc++, not libc++, when
> use_custom_libcxx=false. Or at least, it doesn't set -stdlib=... but
> uses whatever your linker defaults to.
>
> --
>

-- 
-- 
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 visit 
https://groups.google.com/d/msgid/v8-users/CAKSzg3T%2BqcAHcOYiB5Q2s2AJBdyqyhBoTx3M2gtbPKdgq-sSyw%40mail.gmail.com.

Reply via email to