使用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/
本文章著作權歸作者所有,任何形式的轉載都請注明出處。
