问题标签 [gn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
768 浏览

linux - Chromium Linux ARM Build - 如何减小构建的 Chrome 二进制文件的大小?

我一直按照以下页面中详细说明的步骤为 Linux ARM 设备交叉编译和构建 chromium (v87):https://chromium.googlesource.com/chromium/src/+/master/docs/linux/build_instructions。 MD

我已经成功地为 ARM 目标构建了 chrome 二进制文件,但我现在的目标是尝试减少成功构建后给出的 chrome 二进制输出的大小。目前,chrome 二进制文件的大小为 190mb,考虑到几年前执行的以前的 chromium (v70) 版本的 chrome 二进制输出大小约为 80mb,这太大了。

我相信大小的急剧增加可能是由于较新的 chromium 版本中包含大量依赖项,这意味着由gn gen out/***or生成的额外 deps 文件gn args out/***,我一直在寻找方法来尝试删除不需要的库以生成更小的 chrome 二进制文件。我试图修改在BUILD.GNchromium 目录的根目录中找到的根文件,将某些 vars 设置为 false 以试图阻止 gn 命令添加不需要的库/依赖项 deps 文件,但这仍然会导致相同数量的依赖项文件放置在我的构建输出文件夹中并执行autoninja -C out/*** chrome构建 chrome 会再次给出一个大型 chrome 二进制文件(190mb):

下面是我用来构建 190mb 铬二进制文件的args.gn参数:

任何有关如何减小 chrome 输出文件大小的帮助或指导将不胜感激。

0 投票
1 回答
74 浏览

build - 从 AOSP 为 Ubuntu 18.04.5 LTS 上的旧版本构建和测试 V8

我正在尝试按照 https://v8.dev/docs/build 中的文档为AOSP 棒棒糖版本中存在的 V8 运行单元测试: external/chromium_org/v8。但是构建本身不断失败。

后续步骤:

  1. 导出 depot_tools 路径
  2. gclient同步
  3. 使用 ./build/install-build-deps.sh 安装依赖项(默认情况下,源代码中不存在此脚本,因此必须从更高版本手动复制)
  4. 通用 x64.release

我已经安装了所有依赖项并遵循了上述文档中的所有步骤,但是当我这样做时:

gm x64.release

构建失败,输出如下:

我也尝试按照手动工作流程使用 gn 构建它,但我最终遇到了同样的错误。我还尝试在 gn args 列表中将os变量设置为linux,但我也得到了未知标识符错误。

我看到 AOSP 项目中使用的 v8 在文件方面与具有相同版本的主要源代码有很大不同。默认情况下,辅助脚本 tools/dev/gm.py 也不存在,因此我使用的是更高版本的脚本。如果有人能建议我是否应该遵循任何不同的步骤集或我可以参考的任何其他资源来构建 AOSP 项目中存在的 V8,那就太好了

版本:V8 3.29.88.17
操作系统:Ubuntu 18.04.5 LTS
架构:x86_64

0 投票
0 回答
93 浏览

arm64 - 开始在 arm64 上运行时出现 headless_shell 分段错误

当我为amr64完成交叉编译chrome时,我发现启动chrome后会报告错误'Segmentation fault'。

交叉编译服务器系统版本为:Linux version 4.4.0-157-generic (buildd@lgw01-amd64-037) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) )

arm64服务器系统版本为:Linux centos7.6-aarch-template 4.14.0-115.e17a.0.1.aarch64

这里是参数args.gn

autoninja -C out/Debug headless_shell用于编译无头镀铬。

然后将Debug文件夹复制到ARM服务器

但是当我./headless_shell在服务器上运行时,只有分段错误,没有更多信息。像这样:

任何有关我如何解决问题的帮助或指导将不胜感激。

0 投票
1 回答
249 浏览

c++ - 如何在 gn 中包含共享库

我有一个 BUILD.gn,我想在其中包含一个位于usr/lib. 我已经参考了这个主题如何在铬的 gn 文件中包含共享库?

但是 .so 文件没有与 main 函数链接。以下是 BUILD.gn 代码:-

但是,执行此操作时出现错误:-

我调查了许多网站,但我没有得到我错在哪里?

0 投票
0 回答
122 浏览

c++ - Ninja 无法构建文件

我正在尝试使用忍者构建文件。所有项目文件都在同一个文件夹中,但是当我尝试运行此命令时:-

发生的错误是这样的: -

我不确定它指向什么。所以请任何建议将不胜感激。

0 投票
0 回答
228 浏览

electron - //v8/BUILD.gn:503:30 处的电子构建错误:未定义的标识符

我正在尝试使用命令构建电子源 -

不断收到此错误 -

我无法弄清楚我错过了什么。我再次检查,所有的说明和要求,都很好。看起来它指向is_electron_build. 我不知道这是从哪里来的。

我正在关注这个https://www.electronjs.org/docs/development/build-instructions-gn

0 投票
1 回答
123 浏览

electron - 电子构建 - FileNotFoundError test_sample_json_converter.h

按照此说明页面 - https://www.electronjs.org/docs/development/build-instructions-gn构建电子。

我成功地使用了测试构建配置

在下一步中,当我尝试使用ninja -C out/Testing electron它进行构建时失败并出现以下错误 -

完整的错误日志

我搜索了整个目录,只有一个带有test_sample_json_converter.h.golden的文件名。

0 投票
0 回答
343 浏览

google-chrome - 如何修复 Windows 中 Chromium 浏览器的构建错误?

我按照这个文档从官方源代码在我的 Windows 上构建了 Chromium 浏览器。

我做了一些更改并执行了我的第一个构建并遇到了一些错误。

错误如下:

每次构建的错误

我在这方面完全是新手,这是我第一次在 Visual Studio(v. 2019)上工作。我怎样才能摆脱这些错误?任何帮助,将不胜感激!!

0 投票
0 回答
42 浏览

windows - Clang 找不到输入文件

创建可执行文件时出现此错误:

请提供任何提示有什么问题?

0 投票
1 回答
74 浏览

makefile - GN Build 添加具有 makefile 的子目录

我正在尝试向需要第三方库tpm2-tss的铬添加功能。这个库有一个生成文件来构建它。

tpmthird_party目录中添加了一个文件夹并添加了一个BUILD.gn文件。该库也作为子目录添加到此文件夹中。

我尝试使用添加库

在 BUILD.gn 中,然后configs += ["//thirdparty/tpm:tpm_config"]在我想使用库的地方使用。这当然不起作用,因为 tpm2-tss 库不是仅标头。但是,我找不到一种方法来告诉 GN Build 系统使用它提供的 Makefile 来构建/链接这个库。

有没有办法在 GN 中使用 makefile 或者我需要将 Makefile 重写为 BUILD.gn?

这只是为了证明概念,所以我不需要一个合适的解决方案来满足铬存储库的通常标准。