gpt4 book ai didi

C++ V8 嵌入项目结构

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

我正在尝试将 chrome V8 嵌入到我的 C++ 项目中,但我只能得到我能调用的,我的项目被嵌入到 V8 中。我唯一关心的是我的程序是跨平台的,我希望构建命令相同。我开始在 Windows 上开发它,但我现在使用 Mac 来运行 V8。

我可以使用此设置构建 V8 并运行他们的示例:

我当前的解决方案有几个命令installbuildrun。构建命令更加复杂,因为它试图自动编辑 V8 中的 BUILD.gn 文件以插入您的项目而不是 V8。它会将源目录中的所有文件添加到源。

由于某些原因,这种方法感觉非常错误。首先是几乎肯定有比使用 python 脚本编辑构建脚本更好的方法来配置我的项目。其次,我希望 V8 嵌入到我的项目中,而不是相反。我只有 SDL2 作为依赖项,但我有跨平台 CMake build设置,这将被放弃,因为 V8 构建源文件。我觉得如果添加更多依赖项,这种方式可能会变得难以管理。

我目前正在处理一个只有一个源文件的小型测试项目。

编辑:我在运行示例和 API 使用之间找不到有关嵌入 V8 的任何信息

最佳答案

通常的方法是在构建系统中有一个步骤将 V8 库构建为依赖项(以及您可能拥有的任何其他依赖项)。为此,它应该使用官方的 V8 构建说明。如果您在获取源/依赖项和编译它们的步骤之间进行了拆分,那么获取 depot_tools 和调用 fetch_v8/gclient sync 属于其中。请注意,您可能想要固定一个版本(最新的稳定分支)而不是使用树尖。所以,在伪代码中,你会有类似的东西:

step get_dependencies:
download/update depot_tools
download/update V8 @ pinned_revision (using depot_tools)

step compile (depends on "get_dependencies"):
cd v8; gn args out/...; ninja -C out/...;
cd sdl; build sdl
build your own code, linking against V8/sdl/other deps.

许多构建系统已经有了方便的方法来做这些事情。虽然我不太了解 CMake,所以我不能在那里提出任何具体建议。

我同意使用脚本自动修改 BUILD.gn 感觉不对。随着时间的推移,它也可能变得脆弱且需要大量维护。

关于C++ V8 嵌入项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379099/

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