c++ - 编译包含 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();
}
解决方案
lld 链接器能够生成包含对目标文件的间接访问的小型 lib 文件。VS2017 不支持该格式。
我遇到了同样的问题并通过use_lld = false
在我的 args.gn 文件中使用解决了它(构建然后使用 VS2017 链接器)
推荐阅读
- sql - 如何连接三个表以避免无效标识符错误
- type-conversion - 将 byte[] 转换为 Video(mp4 或任何其他可播放格式)
- java - 如何在 JavaFX 中的两个连接实体中显示 TableView 中的数据?
- r - 如何通过 rmarkdown 自动将 networkD3::sankeyNetwork() 保存到静态图像中?
- listview - 更改 SharePoint Online 列表视图行为 spfx 定制器
- docker - 找出 docker-compose 传递给容器的环境变量的值
- express - 在 Express 会话中存储 Socket IO socket.id
- javascript - 移动图片中心弹出对话框
- python - 美丽的汤没有返回我所期望的任何东西
- python - 从列表中删除其他元素时从列表中删除“假”