gpt4 book ai didi

c++ - 在 Win10 上编译 V8 引擎时出现 LNK1181 错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:10 29 4
gpt4 key购买 nike

我在 building V8 上关注本指南但我在编译步骤中遇到了一些问题。我正在运行 Windows 10 x64。我正在尝试使用选项进行编译以嵌入引擎。

运行以下命令:

ninja -C out.gn/x64.release

给我这个错误:

ninja: Entering directory `out.gn/x64.release'
[1/471] LINK mksnapshot.exe mksnapshot.exe.pdb
FAILED: mksnapshot.exe mksnapshot.exe.pdb
C:/Workspace/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 False link.exe /nologo /OUT:./mksnapshot.exe /PDB:./mksnapshot.exe.pdb @./mksnapshot.exe.rsp
LINK : fatal error LNK1181: cannot open input file 'comdlg32.lib'
ninja: build stopped: subcommand failed.

现在我相信我已经缩小了寻找 .lib 的错误范围。文件在错误的目录中。我安装了多个版本,因此我的 Windows 套件安装中有多个文件夹。

Windows Kits/10/Lib/10.0.16299.0
Windows Kits/10/Lib/10.0.15xxx.0

如果我拖放 comdlg32.lib来自 10.0.16299.0 的文件进入10.0.15xxx.0目录然后错误更改为 LNK1181使用不同的输入文件时出错。我这样做了几次,但我不确定这是否会导致不同版本出现问题,而且可能会出现很多问题。

我卸载了 10.0.15xxx.0留下我提到的文件夹的版本,所以我删除了它,然后我开始获取 LNK1181不同的输入文件出错(advapi32.lib 我假设它找不到第一个文件)。这就是我得出路径不正确的结论的方式。


所以我尝试了一些方法来改变路径(我希望只要卸载旧版本就可以修复它)例如:

  • 正在卸载旧版本。
  • 通过注册表项查看是否可以找到安装路径或使用该路径的东西,但我没有找到。我确实注意到 10.0.15xxx.0 的注册表中仍有安装和数据。安装,作为最后的手段,我可​​能会尝试直接从注册表中删除它?
  • 我试图通过设置 <TargetUniversalCRTVersion>10.0.16299.0</TargetUniversalCRTVersion> 来显式设置路径在这个文件中:C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\uCRT.props
  • 我以前从未使用过 Ninja,所以我尝试寻找一种方法来设置某种 lib-path在命令中,但实际上找不到任何东西。
  • 我查看了正在执行的 python 脚本,试图找到与 libs 路径有关的内容,但没有看到任何内容。

如果有任何帮助和建议,我将不胜感激。谢谢。

最佳答案

您可以尝试使用 Visual Studio 编译 v8,如下所述:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md#using-the-visual-studio-ide

通过运行以下命令:

$ gn gen --ide=vs out.gn/x64.release
$ cd out.gn/x64.release
$ msbuild all.sln

您可以在此处查看完整示例:https://github.com/phpv8/v8js/issues/272#issuecomment-262848754

显然官方不再支持这种方法,但我遇到了和你一样的问题,这为我解决了这个问题。

请注意,在此之后我遇到了另一个问题,单元测试由于链接错误而无法编译,但我拥有使用 v8 所需的库。所以可能有更深层次的问题导致了我所遗漏的所有这一切。

编辑:

此外,您可以尝试使用 gn args 设置以下参数:

visual_studio_path = "..."
visual_studio_version = "2017"
wdk_path = "..."
windows_sdk_path = "C:\Program Files (x86)\Windows Kits\10"

要设置这些参数,请执行:

gn args out.gn/x64.release

这将打开一个文本编辑器,您可以在其中编写您感兴趣的额外参数。

要查看您可以指定的完整参数列表:

gn args --list out.gn/x64.release

关于c++ - 在 Win10 上编译 V8 引擎时出现 LNK1181 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47432131/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com