需求
在 gn
, ninja
的开发环境下,实现 hello world 的编译,用以摸清最简单用法。
解决
gn 文件准备
gn 相关的文件可以从 simple_build
这个例子里面复制,总共需要复制以下几个文件:
.gn
这个文件是隐藏文件,很容易漏掉,并且是gn
执行时最先寻找的文件。这个文件所在的位置就是项目源码的root
位置。其中的内容就是简单的指定项目的构建config
具体是那一个。例子中指定的是build/BUILDCONFIG.gn
.build/BUILDCONFIG.gn
,build/BUILD.gn
这两个是针对项目的一些设置包括不同操作系统的设置。build/toolchain/BUILD.gn
这个是针对工具链的一些设置。BUILD.gn
这个才是我们一般进行配置的文件,主要是配置需要编译的文件,库,最终的可执行文件等等。注意,不能使用tab
, 只能使用space
.
编译
- 使用
gn
生成ninja
编译脚本。下面这条命令会在out
目录下生成test
目录,并且生成的ninja
脚本也放在这个文件夹里面。gn gen out/test
- 使用
ninja
正式编译。生成的编译文件和最终文件都放在相应的文件夹里面。ninja -C out/test/
运行和查看
- 直接运行
out/test
目录下的hello
就可以执行了。 - 可以使用
gn desc
来查看相关信息.gn desc out/test "//:hello"