美文网首页
02-bazel构建 C++ 项目(一)

02-bazel构建 C++ 项目(一)

作者: Wizard团队 | 来源:发表于2019-11-06 22:54 被阅读0次

在上一篇的基础之上开始学习如何用 bazel 构建一个简单的c++ 项目,也会深入了解一些 bazel 中的概念

ps:这里假定 已经成功在电脑上安装了 bazel 并且配置好了环境变量哦~

因为主要是讲理论,没有太多的涉及代码,如果大家想实际操作一下,可以区 github  上面下载 bazel 里面 有 example


第一步 建立项目工作空间 workspace

每一个 Bazel 项目的根目录下面都会有一个 workspace 文件,无论是不是空的,它用来标识当前目录是一个 bazel 项目,多个bazel项目之间是相互独立的。

在 workspace 根目录下面,会有一个或者多个 BUILD 文件,它是用来告诉 bazel 怎么把一个完整的项目分开构建。(一个包含了 BUILD 文件的目录叫做 包 package ,之后会涉及到)

第二部 编写 BUILD 文件

BUILD 文件包含了多种可以对 bazel 使用的命令。其中其中最重要的就是 构建规则命令,它告诉 bazel 怎么从源文件构建期望的输出结果(二进制可执行文件或者库)。

每一个在 BUILD 文件中的实例都叫做 一个目标(target),指向一些源文件和依赖项,也可以指向另外一个 target。

看一个构建库的Demo:

cc_binary(                                                                               name = "hello-world",                                                            srcs = ["hello-world.cc"],                                                          )

这里 name=" hello-world" 便指定了一个构建 target,然后这个target 是以 cc_binary 的规则来构建的,使用的源文件就是 hello-world.cc啦~

这里简单说一下在 target 中是可以明确声明自己的依赖 和 选项。其中 name 是强制性的,但是其他的很多属性都是可选的

第三步 构建项目

一般 bazel 的构建命令大概是长这个样子的:

bazel build //path-to-your-build-target-dir:target

简单说一下 这里的  //  后面的内容就是指的是你要构建的 target 相对于根目录(workspace)的位置

构建完成后就可以在 workspace 目录下面找到 bazel 的输出文件 bazel-bin/~~~ 之类的然后就大功告成啦~


这里只是构建了单target 单package 单输出垂直结构的项目,下面需要搞一个有依赖关系的

相关文章

  • 02-bazel构建 C++ 项目(一)

    在上一篇的基础之上开始学习如何用 bazel 构建一个简单的c++ 项目,也会深入了解一些 bazel 中的概念 ...

  • 02-bazel构建C++项目(二)

    上一篇分析了单target 单package 单输出的项目,现在分析一下单输出多package 的情况 之前提到过...

  • cmake式jni开发

    向您的项目添加 C 和 C++ 代码 本文内容 下载 NDK 和构建工具 创建支持 C/C++ 的新项目 构建和运...

  • hadoop mvn 开发实战

    一,目的:编写并运行 hdfs 程序 1,使用 maven 构建项目。从 c/c++ 过来的同学,比较习惯 使用 ...

  • Qt Creator编译android系统下原生的C/C++可执

    ①构建Android平台的纯C/C++项目(注:此步骤后会自动生成Makefile文件); ②修改Makefile...

  • Makefile

    Makefile 构建工具,只需通过make一句命令就可以构建一个可执行程序 在很多C/C++开源项目中,conf...

  • makefile

    Makefile 构建工具,只需通过make一句命令就可以构建一个可执行程序 在很多C/C++开源项目中,conf...

  • 使用 Ninja 代替 make

    前言 在传统的 C/C++ 等项目构建时,通常会采用 make 系统使用 Makefile 文件来进行整个项目的编...

  • Cmake学习(附源码)

    最近及后面很长一段时间会使用c++开发项目(小白),所以学习了cmake:c/c++跨平台构建工具,和java的m...

  • 使用BLADE构建c++工程管理

    一. c++工程依赖管理 之前在百度一直使用comake2构建c++项目,十分方便。免去了手写Makefile的痛...

网友评论

      本文标题:02-bazel构建 C++ 项目(一)

      本文链接:https://www.haomeiwen.com/subject/lewpbctx.html