【发布时间】:2017-11-22 10:20:59
【问题描述】:
我在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 Kit 安装中有多个文件夹。
Windows Kits/10/Lib/10.0.16299.0Windows Kits/10/Lib/10.0.15xxx.0
如果我将comdlg32.lib 文件从10.0.16299.0 拖放到10.0.15xxx.0 目录中,则错误变为LNK1181 错误,输入文件不同。我这样做了几次,但我不确定这是否会导致不同版本出现问题,而且可能会有很多问题。
我卸载了遗留在我提到的文件夹后面的10.0.15xxx.0 版本,所以我删除了它,然后我开始使用不同的输入文件(advapi32.lib 我假设第一个文件)收到LNK1181 错误它找不到)。这就是我得出路径不正确的结论的原因。
所以我尝试了一些方法来改变路径(我希望只是卸载旧版本就可以解决它)例如:
- 卸载旧版本。
- 查看注册表项以查看是否可以找到安装路径或使用该路径的东西,但我没有。我确实注意到
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 路径有关的内容,但什么也没看到。
如果有任何帮助和建议,我将不胜感激。谢谢。
【问题讨论】:
-
在 Windows 上构建如此大的项目总是一团糟。尝试 linux,您将轻松完成构建过程。
-
不幸的是,我正在尝试将引擎嵌入到我正在开发的 Windows 应用程序中。不过我可能会这样做,所以我至少可以玩弄它,直到我让它在 Windows 上编译。
标签: c++ windows compiler-errors v8