问题标签 [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 回答
2439 浏览

shared-libraries - 如何在铬的 gn 文件中包含共享库?

(Q1)我有一个测试。所以有一些我需要使用的功能。我调查了一段时间但没有答案。任何人都可以对如何在铬项目的 gn 文件中包含共享库有一些建议吗?非常感谢。

以下是我的 gn 文件的内容:

(Q2)另外一个问题是:如果我有add.so的源代码,我应该如何在gn中编写来使用共享库的源代码?谢谢。

0 投票
0 回答
537 浏览

google-chrome - 如何在 gn 中设置全局编译标志,使其出现在 ninja 文件中?

如何添加类似-O2或自定义的东西,-DSOMETHING以便它们出现在 *.ninja 文件中?cflagsdefines

重新编译这个:

https://webrtc.org/native-code/development/

它改变了构建系统。现在第一个构建步骤是:

以 Ubuntu 为基础,以自身为目标。

在哪里可以将它添加到 *.gn 或 *.gni 文件中?

0 投票
0 回答
183 浏览

c++ - GN 语言在绝对路径上失败

我正在尝试使用谷歌的 GN 构建一些忍者文件。但是,无论我如何引用该文件,都会引发无效令牌错误。

根据文档,它说我可以使用系统绝对名称和相对名称:

链接到文档

但是,无论我如何链接它 - 它似乎无法识别该文件。任何有关如何使用 GN 的外部依赖项的帮助都会有很大帮助。

提前致谢

0 投票
2 回答
332 浏览

xcode - gn 生成的 WebRTC 的 Xcode 项目无法编译

这是我第一次尝试从源代码构建一些东西。我试图用 WebRTC 本机代码制作一个控制台程序。

我按照官方指南查看了源代码。

正如导游所说,

要生成 IDE 项目文件,请将 --ide 标志传递给 GN 命令。有关支持的 IDE 的更多详细信息,请参阅 GN 参考。

我使用这个命令来生成 Xcode 项目:

但是生成的 Xcode 项目无法编译。Xcode 一直告诉我找不到这些文件。

难道是因为我没有做ninja -C out/Defaultninja我很困惑——当我使用 生成 Xcode 项目时,我是否还应该使用 编译整个源代码gn

0 投票
1 回答
729 浏览

chromium - 如何通过 chromium gn 工具创建项目?

安装 depot_tool 然后按照gn 指南独立指南,但我总是收到错误“gn.py:无法在当前路径的任何父项中找到结帐。”

所以我的问题是:

  1. 如何创建不使用 chromium 子项目的 gn 项目,例如:只有一个功能,如 helloword?
  2. 如何创建使用 chromium 子项目(如 v8/pdfium)的 gn 项目,例如:一个控制台项目正在使用 pdfium 读取 pdf 页数。?
0 投票
1 回答
610 浏览

gn - 如何将 Makefile awk 转换为 BUILD.gn

原来的 Makefile 像

我将从官方 gn 示例开始

转换.sh

我的 BUILD.gn 草案是

'ninja -C out -v' 的输出,是否意味着脚本只能是 python?

0 投票
1 回答
199 浏览

ninja - gn+ninja 链接在 ubuntu 下失败,但在 Arch Linux 上可用

一开始官方的gn例子在ubuntu(gcc 7.3.0)下是可以运行的。

我已将 hello.cc 修改为

现在ninja -C out显示以下错误消息

并且g++ hello.cc hello_static.cc hello_shared.cc -o hello -l readline可行,这意味着 readline 库存在并且可行。

在 Arch Linux (gcc 8.2.1) 下可以使用相同的测试过程

ubuntu 环境是一个 docker 容器,就像 Dockerfile 一样

0 投票
2 回答
655 浏览

c++ - 如何为 Qt 应用程序构建 crashpad

我正在开发 Qt 应用程序,我想使用 crashpad 报告崩溃。我已经下载了源代码并构建了它们。

现在我想将它们静态链接到我的应用程序。

当我转到 out 文件夹时,我看到很多 .a 文件。我应该选择哪一个?

我也使用以下命令构建了它:

不知道要不要加一些参数

有人可以帮忙吗?

提前致谢

0 投票
4 回答
1352 浏览

crash - 如何构建 crashpad 的动态(共享)库?

Crashpad 是 C++ 应用程序的错误报告系统。 https://chromium.googlesource.com/crashpad/crashpad/+/HEAD/doc/developing.md

构建指令是

我可以构建预定义的静态库,但我还没有找到如何使用gnninja生成共享库的方法。

0 投票
1 回答
4471 浏览

ios - 文件 libswiftCore.dylib 没有正确的代码签名

我知道这个问题被问了很多次,人们提出了很多解决方案。就我而言,我已经尝试了所有这些。我尝试的是仅供参考:我不能使用 xcode 进行构建。 原因:我正在编写使用 GN 构建系统构建的所有内容的 chromium ios 代码。

  • 创建 SwiftSupport 文件夹并使其成为 ipa 文件的一部分。
  • 还在我的框架下和 SwiftSupport 文件夹下签名了 Dylib。
  • 一个完整的应用程序使用通过终端验证的相同身份进行签名。

有谁知道苹果还需要什么签名?欢迎更多故障排除步骤。