问题标签 [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 投票
1 回答
26 浏览

gn - 如何在 gn 中添加“-whole-archive”

我使用 gn 作为我的构建系统,我想用“-whole-archive”来定位另一个目标,但我发现似乎没有办法做到这一点?

我需要的是这样的:

  1. --start-group 和 --end-group 中的 libA.a 和 libB.a
  2. libC.a 在 -whole-archive 和 -no-whole-archive

谢谢

0 投票
1 回答
133 浏览

android - 如何将 android 的新依赖项添加到 chromium?

我想为 android 构建 Chromium,我想向AmplitudeChromium 添加新的依赖项。所以我将third_party/android_deps/build.gradle文件更改为:

third_party/android_deps/README.md之后,我运行了这个命令来获取依赖项。

运行命令后,此目录已添加到third_party目录中。

并将这些行添加到third_party/android_deps/BUILD.gn

这些行也被添加到third_party/android_deps/additional_readme_paths.json

但我无法导入com.amplitude.api.Amplitude。我将此行添加到chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java

我收到了这个错误:

我该如何解决这个错误?

0 投票
0 回答
48 浏览

c++ - 对于那些与skia合作的人,我将如何建立一个skia程序?

我最近在我的 Windows 10 机器上完成了skia 库的构建,但老实说,我对如何在任何程序中使用这个库感到非常困惑。因为除了在示例中编译 HelloWorld 程序之外,文档几乎没有提供关于将库与实际程序一起使用的指导。我非常迷失在这里,甚至不知道我可以从哪里开始

我是 C++ 新手,我以前从未真正使用过库。关于如何使用该库编译一个简单的 c++ 程序的非常清晰的指南将非常有帮助。

0 投票
0 回答
135 浏览

c++ - 在 ubuntu 18.04 上编译 chromium,ninja 子命令失败

我试图写一个 ctf 主题 - GoogleCTF2018_Just-In-Time(browser pwn)。我尝试在linux平台上编译chromium,但出现错误。根据 build.sh 文件,我在终端上使用了以下命令。GoogleCTF2018_Just-In-Time 主题: https ://github.com/google/google-ctf/tree/master/2018/finals/pwn-just-in-time

进出/默认

然后,错误发生了……</p>

错误 :

我已经安装了 ninja & depot_tools。并添加了 ./bashrc 的路径。我认为以下错误是关键原因,但我找不到有用的解决方案......

0 投票
1 回答
106 浏览

chromium - 如何最小化 Chromium 构建文件?

当我按照以下过程在 Windows 环境中执行 Chromium 的发布构建时,文件大小为 48GB。

https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md

但是,使用 Chrome 安装程序安装的文件大约为 700MB。是否有构建选项来输出浏览所需的最少文件?

当前使用的构建选项是:

0 投票
1 回答
57 浏览

webrtc - 由于“GLIBC_2.18”未找到错误,无法在 RHEL 7.4 上构建 WebRTC 代码

我正在尝试按照以下链接中提到的说明在 RHEL 7.4 服务器上构建 WebRTC 代码:

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

但观察以下错误。

$ gn gen out/Debug ../src/buildtools/linux64/gn: /lib64/libc.so.6: 找不到版本“GLIBC_2.18”(../src/buildtools/linux64/gn 需要)

看起来 '/src/buildtools/linux64/gn' 期待 'GLIBC_2.18' 版本,但 RHEL 7/CentOS 7 可以支持到 glibc 2.17。

我现在不想升级到 RHEL 8/CentOS 8 版本。

我试图在 RHEL 7 上构建 gn 源代码,但得到了不同的错误。

这个问题的解决方案是什么?

0 投票
0 回答
21 浏览

objective-c - 为什么当我单击我的应用程序上的任何 NSMenuItem 时它会崩溃并告诉我“EXC_BAD_ACCESS”?

我使用 GN 构建了一个应用程序并在 Xcode 上运行它。但是当我单击菜单上的任何项目时,它总是在 main.m 崩溃

我只能得到这样的东西

0 投票
0 回答
12 浏览

gn - 在 v8 版本上,如何设置 gn 默认编辑器工具?默认是记事本

我在 Windows 上构建 v8,当我运行时gn args x64.release/,记事本打开,但保存文本有一个 bom 标题,gn 读取 args.gn 文件的开头然后导致错误。我尝试阅读 gn helper,但没有找到方法。

0 投票
1 回答
61 浏览

visual-studio - 无法使用构建的 all.sln 文件开始调试 chromium

我尝试使用以下命令编译 Chromium:

我得到一个包含项目(all.sln)和二进制文件的文件夹。当我打开一个解决方案项目(在 VS 2022 中)并尝试开始调试(Windows 本地调试器)时,Visual Studio 不只是运行已编译的二进制文件,而是调用 ninja 并尝试启动名为“common_deps_clang_newlib_x64”的程序(???)并且找不到它们。如果我在没有调试的情况下开始(CTRL + F5),我有同样的错误。如果我将“common_deps_clang_newlib_x64”更改为例如。“executable_deps_clang_newlib_x64”我有同样的错误。如何正确设置这个项目?

截图https://i.imgur.com/9hzyBqz.png

当然,我可以使用标准调试,但这里是关于它的内容:

在没有 Intellisense 的情况下使用 Visual Studio

也可以在 Visual Studio 中调试和开发 Chrome,而无需多项目解决方案文件的开销。只需使用 File->Open->Project/Solution 或从 Visual Studio 命令提示符“打开”您的 chrome.exe 二进制文件,如下所示:devenv /debugexe out\Debug\chrome.exe。Visual Studio 的许多代码探索功能在此配置中不起作用,但通过安装 VsChromium Visual Studio 扩展,您可以获得源代码以及其他有用的功能(例如代码搜索)出现在解决方案资源管理器窗口中。您可以使用 File->Add->Existing Project... 将多个感兴趣的可执行文件(base_unittests.exe、browser_tests.exe)添加到您的解决方案中...并通过在解决方案资源管理器中右键单击它们并选择 Set 来更改将要调试的可执行文件作为启动项目。

而且 VsChromium 不适用于 VS 2022

0 投票
0 回答
32 浏览

c++ - MacOS 中的 Chromium 品牌

我一直在尝试改变 MacOS 中 Chromium 的品牌。我试过编辑这些文件:

  • src/chrome/app/theme/chromium/BRANDING
  • chrome/app/general_resources.grd
  • chrome/app/settings_strings.grdp
  • chrome/app/chromium_strings.grd
  • chtome/common/chrome_paths_mac.mm
  • chtome/common/chrome_constants.cc

在尝试了对上述文件进行更改的所有排列和组合之后,每当我尝试从源代码构建时,所创建的目录都会被命名@PRODUCT_FULLNAME@(例如:@PRODUCT_FULLNAME@ Framework.framework、、@PRODUCT_FULLNAME@ Helper等)。

我尝试启动该文件 out/MyBuild/@PRODUCT_FULLNAME@.app/Contents/MacOS/@PRODUCT_FULLNAME@,但它崩溃并引发错误。经过一番研究,我知道全名是在文件中设置的build/util/branding.gni。我尝试直接从该文件更改全名并且它有效,目录的标题是我给出的名称而不是@PRODUCT_FULLNAME@. 然而,当我尝试启动浏览器时,它又崩溃了。

请告诉我我在这里做错了什么,我尝试参考以下问题: