如何在 Windows 和 Visual Studio 2015 下构建 v8 动态库
Posted
技术标签:
【中文标题】如何在 Windows 和 Visual Studio 2015 下构建 v8 动态库【英文标题】:How to build v8 dynamic libraries under Windows and Visual Studio 2015 【发布时间】:2016-08-20 12:54:16 【问题描述】:我已经能够在 Windows 8.1 和 Visual Studio 2015 Update 2 下使用基于 GN
Building with GN 的构建链成功构建 v8,但我可以'找不到如何构建 v8 库。基本上我想启用component=shared_library
,但我找不到怎么做...
helloworld.exe 等示例正在编译并且正在运行。
这是我到目前为止的构建方式:
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
mkdir depot_tools
cd depot_tools
curl -O https://storage.googleapis.com/chrome-infra/depot_tools.zip
cmake -E tar xf "depot_tools.zip" --format=zip
SET PATH=%CD%;%CD%\python276_bin;%PATH%
cd ..
gclient config https://chromium.googlesource.com/v8/v8
set GYP_MSVS_VERSION=2015
gclient sync
cd v8
python tools/dev/v8gen.py x64.release
ninja -C out.gn/x64.release
我也尝试过使用 gyp
的老式方式,但没有成功(无法编译):
SET DEPOT_TOOLS_WIN_TOOLCHAIN=0
mkdir depot_tools
cd depot_tools
curl -O https://storage.googleapis.com/chrome-infra/depot_tools.zip
cmake -E tar xf "depot_tools.zip" --format=zip
SET PATH=%CD%;%CD%\python276_bin;%PATH%
cd ..
gclient config https://chromium.googlesource.com/v8/v8
set GYP_MSVS_VERSION=2015
set GYP_GENERATORS=ninja
gclient sync
cd v8
python gypfiles\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library
ninja -C out\Release_x64 all
有什么建议吗?
【问题讨论】:
【参考方案1】:我遇到了同样的问题,解决方法是编辑 gn 参数。
之后:
python tools/dev/v8gen.py x64.release
只需编辑文件 out.gn/x64.release/args.gn 并添加以下行:
is_component_build = true
构建完成后,您应该在 out.gn/x64.release 文件夹中找到一个 v8.dll。
【讨论】:
谢谢。我设法生成了 v8.dll,但现在 Windows 下需要的所有其他静态库都没有生成(v8_libplatform、v8_libbase、...),我必须链接所有 obj 文件。你也解决了这些问题吗? PS: 可以在命令行gn gen --args="is_debug=false is_component_build=true target_cpu=\"x64\"" out.gn/x64.release
给gn args
不幸的是,如果你查看文件 out.gn/x64.release/obj/d8.ninja,它是 v8 控制台,你会发现每个目标文件和需要的库,在我的项目中,我只是将所有库和目标文件添加到链接器中,然后使用 v8 脚本引擎运行一个正在运行的程序【参考方案2】:
我是在吉普人中生产的。不,那是“set GYP_GENERATORS = ninja
”中的设置,是“GYP_GENERATORS = msvs
”中的设置。运行生成的sln文件,但是在构建的时候留下一些错误,构建成功并浏览了互联网。
【讨论】:
谢谢,我通过使用GYP_GENERATORS = msvs
取得了一些进展,但仍然不是所有目标都在链接,尤其不是我想要的(libv8.dll)...视觉正在尝试链接@987654325 @而v8_base.lib
实际上是内置的... 30>LINK : fatal error LNK1181: cannot open input file 'Y:\Sources\git.corp.adobe.com\Horizon\build\win64\lib-v8\v8\build\Release\lib\v8_base_0.lib'
41>------ Build started: Project: All, Configuration: Release x64 ------ ========== Build: 21 succeeded, 20 failed, 0 up-to-date, 0 skipped ==========
你不存在libv8.dll
文件吗?我也libv8.dll
没有。尝试构建时出现错误。但是,可以解决 Internet 搜索问题。如果没有明确的答案,我很抱歉。对于您的错误,请尝试查看此link。以上是关于如何在 Windows 和 Visual Studio 2015 下构建 v8 动态库的主要内容,如果未能解决你的问题,请参考以下文章
Windows Apache + mod_wsgi 环境配置
如何使用Visual Studio 2017在Windows窗体应用程序中查看和编辑Visual Basic Power Pack形状?