编译项目时文件无效或损坏,包括 V8

Invalid or corrupted file while compiling project included V8

本文关键字:损坏 包括 V8 无效 项目 文件 编译      更新时间:2023-10-16

我刚刚将 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();
}

lld 链接器能够生成包含对象文件间接寻址的小 lib 文件。VS2017不支持该格式。

我遇到了同样的问题,并通过在我的 args.gn 文件中使用 use_lld = false 解决了它(构建然后使用 VS2017 链接器(