zoukankan      html  css  js  c++  java
  • 最简单的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/
    本文章著作权归作者所有,任何形式的转载都请注明出处。

  • 相关阅读:
    关于++i和i++的左值、右值问题
    运算符优先级
    计算机中的数及其编码
    递归函数
    PHP读取excel(4)
    替换元素节点replaceChild()
    子结点childNodes
    插入节点insertBefore()
    创建节点createElement
    插入节点appendChild()
  • 原文地址:https://www.cnblogs.com/bigben0123/p/13841621.html
Copyright © 2011-2022 走看看