需求

需要在 ubuntu 20.04 LTS 上面安装 gn + ninja 的构建环境,用于后续的开发。

解决

安装 ninja

ninja 安装非常简单,ubuntu 源当中就有:

sudo apt install ninja-build

安装 clang

clang 用于 gn 的编译,ubuntu 源当中也有:

sudo apt install clang

安装 gn

gn 的安装有两种方法:

下载源码

官方源: https://gn.googlesource.com/gn

Github: https://github.com/timniederhausen/gn

Gitee: https://gitee.com/openharmony/third_party_gn

注意:

  • 直接下载源码 python 那一步过不去,只有 git 拉下来的才可以。
  • 这三个源,时效性是 官方 > github > gitee.
  • 官方源是肯定需要科学才能拉下来的。

如果使用官方源:

git clone https://gn.googlesource.com/gn

编译源码

编译前使用 python 检查,编译使用 clang.

cd gn
python build/gen.py # --allow-warning if you want to build with warnings.
ninja -C out

测试编译结果

gn 自带编译结果测试,只要输出为 PASSED 即可.

# To run tests:
out/gn_unittests

加入环境变量

gn 加入环境变量有几种方法:

  • ./out/gn 复制到 ~/bin 中,然后在 .bashrc 中的 PATH 中添加 ~/bin 即可。推荐这种。
  • ./out/gn 复制到 /usr/local/bin 中。以后使用可能有权限的问题。
  • 直接把当前的 gn 的位置添加到环境变量中去。不推荐, PATH 会很乱。

编译例子

gn 自带了一个编译的例子,只要观察到结果是: Hello, world 即可。

cd examples/simple_build
../../out/gn gen -C out
ninja -C out
./out/hello

使用 gn

可以直接参考 simple_build 这个例子里面的 build.gn, 或者直接参考官方的快速教程: 在源码的 docs 文件夹里面,或者可以网页查看: https://gn.googlesource.com/gn/+/main/docs/quick_start.md .

参考

gn / gn / refs/heads/main

GN_1_在Ubuntu22.04安装GN

GN环境搭建

gn、ninja的安装-Ubuntu18.04