需求
需要在 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/+/refs/heads/main 这个网页上面可以找到 linux, win, mac 三个下载地址。
- 源码安装,本文主要介绍源码安装过程。
下载源码
官方源: 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 .