我刚刚将 V8 编译为静态库,一切都编译得很好,但是当我尝试将 thiese .lib 文件包含到我的 VS 项目中时 - 它显示 v8_base_without_compiler.lib 的“无效或损坏的库” 我使用的是 Windows 10 x64、Visual Studio 2017、最新的 SDK
我的 GN 构建配置:
is_debug = false
objective-c PU =“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 链接器)
关于c++ - 编译包含 V8 的项目时文件无效或损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55671141/