需求

在项目中使用 gn 时,会有很多各种各样的构建需求,本文是记录这些细节的实现方法。

解决

静态库

需求:

  • 项目文件夹为 project, 静态库源文件目录为 project/protocol
  • 静态库源文件分为两个文件, a.cpp, b.cpp
  • 静态库名为 proto

解决:

在静态库目录下新建 BUILD.gn, 内容如下:

static_library("proto") {
    sources = [
      "a.cpp",
      "b.cpp",
    ]
}

注意: 库名称

在项目目录下的 BUILD.gn, 新增内容如下:

executable("test") {
    ...

    deps = [
      "//protocol:proto",
    ]
    ...
}

*注意: 冒号前面是文件夹路径,冒号后面是 BUILD.gn 文件中的标识, 如果标识和文件夹名称一致,可以省略冒号及后面的部分。比如,文件夹是 abc, 生成的库也是 abc, 那么依赖这个地方可以直接写成 //abc 即可 *

参考

using gn build