Ошибки компоновщика при сборке отладочной версии V8

Мне нужно собрать V8 для отладки. Но при установке параметра v8_optimized_debug в значение false появляются ошибки компоновки (для сборки используется MSVC):

[1/10] LINK mksnapshot.exe mksnapshot.exe.pdb FAILED: mksnapshot.exe mksnapshot.exe.pdb C:/depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 False link.exe /nologo /OUT:./mksnapshot.exe /PDB:./mksnapshot.exe.pdb @./mksnapshot.exe.rsp Создается библиотека .\mksnapshot.lib и объект .\mksnapshot.exp

v8_base_without_compiler_1.lib(ordered-hash-table.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_1.lib(deserializer.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_1.lib(serializer.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_initializers.lib(setup-heap-internal.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(stub-cache.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_1.lib(objects.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_1.lib(js-objects.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_1.lib(string.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(array-buffer-sweeper.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(mark-compact.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(incremental-marking.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(scavenger.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(api.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(heap.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(factory-base.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(factory.obj) : error LNK2001: неразрешенный внешний символ ""public: static class v8::internal::Isolate * __cdecl v8::internal::Heap::GetIsolateFromWritableObject(class v8::internal::HeapObject)" (?GetIsolateFromWritableObject@Heap@internal@v8@@SAPEAVIsolate@23@VHeapObject@23@@Z)"

v8_base_without_compiler_0.lib(heap.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: class v8::internal::AllocationResult __cdecl v8::internal::third_party_heap::Heap::Allocate(unsigned __int64,enum v8::internal::AllocationType,enum v8::internal::AllocationAlignment)" (?Allocate@Heap@third_party_heap@internal@v8@@QEAA?AVAllocationResult@34@_KW4AllocationType@34@W4AllocationAlignment@34@@Z) в функции "private: class v8::internal::AllocationResult __cdecl v8::internal::Heap::AllocateRaw(int,enum v8::internal::AllocationType,enum v8::internal::AllocationOrigin,enum v8::internal::AllocationAlignment)" (?AllocateRaw@Heap@internal@v8@@AEAA?AVAllocationResult@23@HW4AllocationType@23@W4AllocationOrigin@23@W4AllocationAlignment@23@@Z)

v8_base_without_compiler_0.lib(factory.obj) : error LNK2001: неразрешенный внешний символ ""public: class v8::internal::AllocationResult __cdecl v8::internal::third_party_heap::Heap::Allocate(unsigned __int64,enum v8::internal::AllocationType,enum v8::internal::AllocationAlignment)" (?Allocate@Heap@third_party_heap@internal@v8@@QEAA?AVAllocationResult@34@_KW4AllocationType@34@W4AllocationAlignment@34@@Z)"

v8_initializers.lib(setup-heap-internal.obj) : error LNK2001: неразрешенный внешний символ ""public: class v8::internal::AllocationResult __cdecl v8::internal::third_party_heap::Heap::Allocate(unsigned __int64,enum v8::internal::AllocationType,enum v8::internal::AllocationAlignment)" (?Allocate@Heap@third_party_heap@internal@v8@@QEAA?AVAllocationResult@34@_KW4AllocationType@34@W4AllocationAlignment@34@@Z)"

v8_base_without_compiler_0.lib(heap.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: unsigned __int64 __cdecl v8::internal::third_party_heap::Heap::GetObjectFromInnerPointer(unsigned __int64)" (?GetObjectFromInnerPointer@Heap@third_party_heap@internal@v8@@QEAA_K_K@Z) в функции "public: class v8::internal::Code __cdecl v8::internal::Heap::GcSafeFindCodeForInnerPointer(unsigned __int64)" (?GcSafeFindCodeForInnerPointer@Heap@internal@v8@@QEAA?AVCode@23@_K@Z)

v8_base_without_compiler_0.lib(heap.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: static bool __cdecl v8::internal::third_party_heap::Heap::IsValidHeapObject(class v8::internal::HeapObject)" (?IsValidHeapObject@Heap@third_party_heap@internal@v8@@SA_NVHeapObject@34@@Z) в функции "bool __cdecl v8::internal::IsValidHeapObject(class v8::internal::Heap *,class v8::internal::HeapObject)" (?IsValidHeapObject@internal@v8@@YA_NPEAVHeap@12@VHeapObject@12@@Z)

v8_base_without_compiler_0.lib(objects-debug.obj) : error LNK2001: неразрешенный внешний символ ""public: static bool __cdecl v8::internal::third_party_heap::Heap::IsValidHeapObject(class v8::internal::HeapObject)" (?IsValidHeapObject@Heap@third_party_heap@internal@v8@@SA_NVHeapObject@34@@Z)"

v8_base_without_compiler_0.lib(spaces.obj) : error LNK2001: неразрешенный внешний символ ""public: static bool __cdecl v8::internal::third_party_heap::Heap::IsValidHeapObject(class v8::internal::HeapObject)" (?IsValidHeapObject@Heap@third_party_heap@internal@v8@@SA_NVHeapObject@34@@Z)"

v8_base_without_compiler_1.lib(partial-serializer.obj) : error LNK2001: неразрешенный внешний символ ""public: static bool __cdecl v8::internal::third_party_heap::Heap::IsValidHeapObject(class v8::internal::HeapObject)" (?IsValidHeapObject@Heap@third_party_heap@internal@v8@@SA_NVHeapObject@34@@Z)"

v8_base_without_compiler_0.lib(heap.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __cdecl v8::internal::third_party_heap::Heap::CollectGarbage(void)" (?CollectGarbage@Heap@third_party_heap@internal@v8@@QEAA_NXZ) в функции "private: bool __cdecl v8::internal::Heap::PerformGarbageCollection(enum v8::internal::GarbageCollector,enum v8::GCCallbackFlags)" (?PerformGarbageCollection@Heap@internal@v8@@AEAA_NW4GarbageCollector@23@W4GCCallbackFlags@3@@Z)

v8_base_without_compiler_0.lib(read-only-heap.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: static bool __cdecl v8::internal::third_party_heap::Heap::InReadOnlySpace(unsigned __int64)" (?InReadOnlySpace@Heap@third_party_heap@internal@v8@@SA_N_K@Z) в функции "public: static bool __cdecl v8::internal::ReadOnlyHeap::Contains(class v8::internal::HeapObject)" (?Contains@ReadOnlyHeap@internal@v8@@SA_NVHeapObject@23@@Z)

v8_base_without_compiler_1.lib(serializer.obj) : error LNK2019: ссылка на неразрешенный внешний символ "public: static bool __cdecl v8::internal::third_party_heap::Heap::InCodeSpace(unsigned __int64)" (?InCodeSpace@Heap@third_party_heap@internal@v8@@SA_N_K@Z) в функции "enum v8::internal::SnapshotSpace __cdecl v8::internal::`anonymous namespace'::GetSnapshotSpace(class v8::internal::HeapObject)" (?GetSnapshotSpace@?A0xa3e2a684@internal@v8@@YA?AW4SnapshotSpace@23@VHeapObject@23@@Z)

.\mksnapshot.exe : fatal error LNK1120: неразрешенных внешних элементов: 7

ninja: build stopped: subcommand failed.

DUMPBIN показывает, что эти символы присутствуют. При использовании v8_optimized_debug = true всё собирается нормально, но отладка сильно усложняется из-за оптимизации. Как это исправить.


Ответы (0 шт):