首页 > 解决方案 > 编译包含 V8 的项目时文件无效或损坏

问题描述

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

标签: c++visual-studiocompilationstatic-librariesembedded-v8

解决方案


lld 链接器能够生成包含对目标文件的间接访问的小型 lib 文件。VS2017 不支持该格式。

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


推荐阅读