最简单的gn构建 脱离chromium
使用Google的gn工具构建C++项目,但是官方的demo构建脚本还是不够简单,这里写一个最简单的构建结构.
目录结构

目录结构
必要的几个文件
- .gn
- 根目录下的BUIlD.gn
- BUILDCONFIG.gn
.gn
# gn help dotfile buildconfig = "//build/config/BUILDCONFIG.gn"
这里就指定个最简单的buildconfig文件即可.
BUILD.gn
executable("gn-demo") { sources = [ "main.cpp" ] }
代表着要构建可执行文件.
BUILDCONFIG.gn
set_default_toolchain("//build/config/toolchains:mac")
这里指定了使用的默认工具链
toolchains
build/config/toolchains/BUILD.gn
toolchain("mac") { tool("cxx"){ command = "clang++ -c {{source}} -o {{output}}" outputs = [ "{{source_out_dir}}/{{target_output_name}}.o" ] } tool("link"){ exe_name = "{{root_out_dir}}/{{target_output_name}}{{output_extension}}" command = "clang++ {{inputs}} -o $exe_name" outputs = ["$exe_name"] } }
写工具链的脚本,需要大致明白C++的编译流程.
其中cxx
:代表编译C++,link
代表链接.由于我使用的是Mac,所以这里使用clang进行编译.
构建
shell
gn gen out/Debug ninja -C out/Debug
可执行文件就构建成功了.
来源: 姜康的技术博客
文章作者: 姜康
文章链接: https://www.jiangkang.tech/2020/05/29/c/gn-gou-jian-c-xiang-mu-zhi-helloworld/
本文章著作权归作者所有,任何形式的转载都请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-10-19 MySQL 到底能不能放到 Docker 里跑?