我在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
lib-path
的方法,但却找不到任何东西。我将不胜感激任何帮助和建议。感谢。
答案 0 :(得分:0)
您可以尝试使用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
答案 1 :(得分:0)
我正在关注本指南https://medium.com/dailyjs/how-to-build-v8-on-windows-and-not-go-mad-6347c69aacd4并且还遇到了错误
LINK1181: cannot open input file 'advapi32.lib'
我很确定这是因为我有错误版本的Windows 10 SDK。和你类似我有版本:
Windows Kits/10/Lib/10.0.10240.0
Windows Kits/10/Lib/10.0.16299.0
但根据https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md#Setting-up-Windows(我认为相关),你需要版本10.0.15063.0
将版本10.0.15063.0
(使用visual studio安装程序)安装到
Windows Kits/10/Lib/10.0.15063.0
我能够继续构建。