首页 > 解决方案 > 在 linux 平台上编译 V8 失败

问题描述

在 linux 平台上编译最新的 v8 失败。

linux, v8 使用 ninjia

忍者:进入目录 `out.gn/x64.release' [14/571] LINK ./mksnapshot o/x/args.gn+ 缓冲区失败:mksnapshot ../../third_party/llvm-build/Release+Asserts/bin /clang++ -pie -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--按需-fuse-ld=lld -Wl,--icf=all -Wl,--color-diagnostics -m64 -rdynamic -pie -Wl,--disable-new-dtags -Wl,-O2 -Wl,--gc-部分 -o "./mksnapshot" -Wl,--start-group @"./mksnapshot.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt ld.lld: 错误: 未定义符号: void std::atomic_init(std::atomic*, bool)

由 module-compiler.cc:260 (../../src/wasm/module-compiler.cc:260) obj/v8_base_without_compiler/module-compiler.o:(v8::internal::wasm::CompilationState: :New(std::shared_ptr const&, std::shared_ptr))

链接错误

标签: v8embedded-v8

解决方案


通过用直接赋值替换 std::atomic_init 解决了这个问题。


推荐阅读