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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM