c++ - 编译包含 V8 的项目时文件无效或损坏

标签 c++ visual-studio compilation static-libraries embedded-v8

我刚刚将 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/

相关文章:

c++ - 是否可以将测试标记为在 googletest 运行中花费很长时间

c# - CreateFile、FILE_FLAG_BACKUP_SEMANTICS、目录管理和句柄

c++ - 可移植的 C++ 多线程

c++ - Visual Studio 2015 在 constexpr 中使用 lambda

c++ - 在 VS 中构建由 Boost 驱动的解决方案

c - 内联函数及其实现

c++ - 重置未定义行为后是否使用 shared_ptr?

visual-studio - Visual Studio Community 和其他付费版本有什么区别?

data-structures - 如何在Mathematica中链接此线性求解器?

java - IntelliJ 2018.1 首选项中的 “Use ' --release' 选项是什么?