您的位置:首页 > 汽车 > 时评 > 给我一个网站贴吧_怎么做企业的网站_百度站长工具seo查询_俄罗斯搜索引擎推广

给我一个网站贴吧_怎么做企业的网站_百度站长工具seo查询_俄罗斯搜索引擎推广

2024/12/25 20:35:10 来源:https://blog.csdn.net/qqyy_sj/article/details/144624394  浏览:    关键词:给我一个网站贴吧_怎么做企业的网站_百度站长工具seo查询_俄罗斯搜索引擎推广
给我一个网站贴吧_怎么做企业的网站_百度站长工具seo查询_俄罗斯搜索引擎推广

1. 前言

在上一篇文章中,我们介绍了 Chromium 构建系统中的 GN 的基本概念、目录结构和常用工具。从本篇开始,我们将进入实战环节,通过构建一个简单的 Demo 来学习如何编写和使用 GN 目标,让你亲身体验 GN 的魅力。

2. 动手实践:构建一个简单的 Demo

为了更好地理解 GN 目标的使用方法,我们将创建一个简单的 Demo,该 Demo 包含一个静态库和一个可执行文件,演示如何使用 executable 目标来构建一个可执行文件的项目。

🎉

注意:这里我们默认您已经根据编译指南成功编译过了Chromium,如有疑问请查询过往的编译指南。

2.1 组织项目结构

首先,我们需要在 Chromium 源码的 src 目录下创建一个名为 demo 的文件夹来存放我们的项目文件。

  1. 创建 demo 文件夹: 在资源管理器中,打开 Chromium 源码的 src 目录,右键单击空白处,选择“新建”->“文件夹”,并将其命名为 demo
  2. 创建 BUILD.gn 文件: 进入 demo 文件夹,右键单击空白处,选择“新建”->“文本文档”,将其命名为 BUILD.gn请确保文件扩展名为 .gn 而不是 .txt你可能需要启用“显示文件扩展名”选项才能正确修改。
  3. 编辑 BUILD.gn 文件: 使用你喜欢的文本编辑器(例如记事本、Notepad++、VS Code 等)打开 BUILD.gn 文件,并添加以下内容:
group("demo") {deps = ["hello_gn",]
}

代码解释:

  • group("demo"): 定义了一个名为 demogroup 目标。group 目标本身不产生任何输出,它主要用于组织和管理其他的目标。
  • deps = [ "hello_gn" ]: 指定 demo 目标的依赖项为名为 hello_gn 的目标。这意味着在构建 demo 目标之前,需要先构建 hello_gn 目标。这里 hello_gn 将会是一个可执行文件目标,我们将在下一步创建。
  1. 创建 hello_gn 文件夹: demo 文件夹下,右键单击空白处,选择“新建”->“文件夹”,并将其命名为 hello_gn
  2. 创建 hello_gn.cc 文件: 进入 hello_gn 文件夹,右键单击空白处,选择“新建”->“文本文档”,将其命名为 hello_gn.cc同样请确保文件扩展名为 .cc
  3. 编写 hello_gn.cc 代码: 使用文本编辑器打开 hello_gn.cc 文件,并添加以下 C++ 代码:
#include <iostream>int main() {std::cout << "Hello GN!" << std::endl;return 0;
}

代码解释:

  • 这段代码非常简单,它包含了 <iostream> 头文件以使用标准输入输出流,并在 main 函数中打印 "Hello GN!" 到控制台。
  1. 创建 hello_gn/BUILD.gn 文件: hello_gn 文件夹下,右键单击空白处,选择“新建”->“文本文档”,将其命名为 BUILD.gn确保文件扩展名为 .gn
  2. 编写 hello_gn/BUILD.gn 代码: 使用文本编辑器打开 hello_gn/BUILD.gn 文件,并添加以下内容:
executable("hello_gn") {sources = ["hello_gn.cc",]
}

代码解释:

  • executable("hello_gn"): 定义了一个名为 hello_gnexecutable 目标,表示要构建一个可执行文件。
  • sources = [ "hello_gn.cc" ]: 指定了构建该可执行文件所需的源文件列表。

最终,demo文件夹下应该如下面的结构

2.2 配置构建参数

接下来,我们需要修改之前编译生成的 out/Default 文件夹下的 args.gn 文件,以添加我们的 Demo 到构建系统中。

  1. 修改 args.gn 文件: 使用文本编辑器打开 out/Default/args.gn 文件(如果没有 Default 目录,请根据你的实际构建目录进行调整)。在文件末尾添加以下两行:
# Add extra dependencies to the GN root
root_extra_deps = [ "//demo" ]# Disable treating warnings as errors
treat_warnings_as_errors = false
  1. 代码解释:
    • root_extra_deps = [ "//demo" ]: 将 //demo 目标添加到根构建目标的依赖中。//demo 表示 src/demo/BUILD.gn 中定义的 demo 目标。这样,在执行 gn gen 时,GN 会将我们的 Demo 包含到构建图中。
    • treat_warnings_as_errors = false: 将此选项设置为 false 可以避免一些潜在的编译警告被当作错误处理,使得编译更容易通过(在开发阶段较为实用,发布版本建议开启)。

2.3 生成构建文件并编译

现在,我们可以生成 Ninja 构建文件并执行编译了。

  1. 生成 Ninja 构建文件: 打开命令行工具 (例如 cmd 或 PowerShell),并切换到 Chromium 源码的 src 目录 ,执行 gn gen 命令。请将 xxxx 替换为你想要的构建输出目录,例如 out/Defaultout/Debug
gn gen out/Default
  1. 或者(如果您之前已经生成过 out/Default):
gn gen <xxxx>

这条命令会根据 BUILD.gn 文件生成相应的 Ninja 构建文件。

  1. 编译: 使用 ninja 命令进行编译:
ninja -C out/Default demo

2.4 运行 Demo

编译成功后,你会在 out/Default 目录下找到生成的可执行文件 hello_gn.exe

  1. 运行可执行文件: 在命令行中输入以下命令:
out\Default\hello_gn.exe

  1. 或者,你也可以直接在资源管理器中双击 hello_gn.exe 文件来运行。

如果一切顺利,你将在控制台中看到输出:

Hello GN!

恭喜你! 你已经成功构建并运行了你的第一个 GN Demo!

3. 结语

在本篇中,我们通过一个简单的 Demo 演示了如何使用 executable 目标来构建可执行文件。你学习了如何组织项目结构、编写 BUILD.gn 文件、配置构建参数以及执行编译和运行。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com