gpt4 book ai didi

visual-studio-2013 - 如何为 Windows 编译尽可能小的 V8 库?

转载 作者:行者123 更新时间:2023-12-04 07:53:20 33 4
gpt4 key购买 nike

我正在为学校制作一个游戏引擎,我想使用 Google 的 V8 来允许在引擎中编写 JavaScript 脚本。引擎是使用 Visual Studio 2013 编写的,由于最终的游戏不能超过 50MB,我希望尽可能减小 V8 文件大小的影响。

在网上找了 V8 怎么办,遇到了 a series of tutorials on V8 ,它带有一个用于 V8 的预编译 .lib 文件。然而,它已经四岁了。我假设自己构建一个更新的版本会提高性能并添加功能,所以我昨天花了所有时间在 V8 构建过程中苦苦挣扎,最终想出了如何为 Visual Studio 编译 V8:

  • 安装谷歌的 "depot tools"
  • 运行 fetch v8

  • 这为我提供了生成 V8 Visual Studio 解决方案所需的一切,当我编译它时,它可以工作,并生成 .lib 和 .dll 文件。然而,当我尝试创建一个测试解决方案并将这些库链接到它时,它非常令人困惑。

    构建过程会生成以下 LIB 文件:
  • cctest.lib
  • gmock.lib
  • gtest.lib
  • icui18n.lib
  • icuuc.lib
  • mksnapshot.lib
  • unittest.lib
  • v8.lib
  • v8_base.lib
  • v8_libbase.lib
  • v8_libplatform.lib
  • v8_nosnapshot.lib
  • v8_snapshot.lib

  • 以及以下 DLL:
  • icudt.dll
  • icui18n.dll
  • icuuc.dll
  • v8.dll

  • 昨天的某个时候,我包含了许多库(我认为是 v8、v8_base 和 v8_snapshot)并将所有 DLL 复制到我的项目的输出目录中,最终它起作用了。但是,正如我上面所说,我需要 V8 对文件大小的影响尽可能小。我不需要 i18n 支持,那么有没有办法在没有它的情况下进行编译?就像我上面说的,我有一个旧版本的 V8 .lib,它不需要 DLL 来运行,它编译并且运行良好......但是我错过了更新的功能和改进,因为它已经四年了老的?无论如何,所有这些 .lib 是什么意思?我找不到任何文件说明哪些人做了什么或类似的事情。

    所以是的,我想如果有人可以提供说明或向我指出任何有帮助的文档,那就太好了。我昨天几乎一整天都在试图解决这个问题。

    最佳答案

    有一个页面Building with GYP在 V8 维基中。简而言之,您应该使用 GYP 生成 Visual Studio 解决方案,然后构建它。

  • 安装Python、Subversion客户端;使其从命令行可用。
  • 打开 Visual Studio 命令提示符,在那里执行后续步骤。
  • 将 V8 源代码提取到某个目录中,假设它将命名为 v8-build:
    svn checkout http://v8.googlecode.com/svn/trunk v8-build

  • 对于最新版本(一些标记版本,例如 http://v8.googlecode.com/svn/tags/3.28.57 )
  • 在 Windows 上你需要 Cygwin:svn checkout http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 v8-build/third_party/cygwin

  • (请参阅 v8-build/DEPS 文件中的实际 URL)
  • 获取 GYP:
    svn checkout http://gyp.googlecode.com/svn/trunk@1831 v8-build/gyp
  • 可选地获取 ICU:
    svn checkout https://src.chromium.org/svn/trunk/deps/third_party/icu46@258359 v8-build/third_party/icu
  • 使工具在命令行中可用:
  • set CYGWIN_ROOT=%cd%\v8-build\third_party\cygwin
  • set PATH=%CYGWIN_ROOT%\bin;%PATH%
  • set PYTHONPATH=%cd%\v8-build\gyp\pylib
  • v8-build\third_party\cygwin\setup_mount.bat
  • v8-build\third_party\cygwin\setup_env.bat
  • 使用所需选项运行 GYP:
    python v8-build\build\gyp_v8 -Dcomponent=static_library -Dtarget_arch=x64 -v8_enable_i18n_support=0 -Dv8_use_snapshot=0

  • (参见 v8-build\build\features.gypi 中允许的变量)
  • 使用 Cygwin 环境使用 Visual Studio 构建生成的项目:
    msbuild /m /p:UseEnv=true /p:Configuration=Release /p:Platform=x64 v8-build\tools\gyp\v8.vcxproj
  • 结果库应该在 v8-build\build 中目录

  • 我使用 Python 脚本来自动执行上述步骤。

    更新:我使用类似的脚本为 V8 构建 NuGet 包,这里是: https://github.com/pmed/v8-nuget/blob/master/build.py

    关于visual-studio-2013 - 如何为 Windows 编译尽可能小的 V8 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287363/

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