Неверный или поврежденный файл при компиляции проекта, включенного V8 - PullRequest
1 голос
/ 14 апреля 2019

Я только что скомпилировал V8 как статические библиотеки, все скомпилировалось нормально, но когда я пытаюсь включить эти .lib-файлы в мой проект VS - он говорит «Недопустимая или поврежденная библиотека» для v8_base_without_compiler.lib Я нахожусь на Windows 10 x64, Visual Studio 2017, последние SDK

Моя конфигурация сборки GN:

is_debug = false target_cpu = "x64" is_component_build = false v8_static_library = true

Если мне нужно предоставить больше информации - пожалуйста, сообщите мне

Спасибо!

#include "Scripting.h"

#pragma comment(lib, "v8_base_without_compiler")
#pragma comment(lib, "v8_libbase")
#pragma comment(lib, "v8_external_snapshot")
#pragma comment(lib, "v8_libplatform")
#pragma comment(lib, "v8_libsampler")
#pragma comment(lib, "icuuc.lib")
#pragma comment(lib, "icui18n.lib")
#pragma comment(lib, "inspector")

VOID ScriptingJS::RegisterFunction() {
    V8::Initialize();
}

1 Ответ

0 голосов
/ 07 мая 2019

Компоновщик lld может создавать небольшие файлы lib, содержащие косвенные ссылки на объектные файлы. Этот формат не поддерживается VS2017.

У меня была такая же проблема, и я решил ее с помощью use_lld = false в моем файле args.gn (сборка затем использует компоновщик VS2017)

...