空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

Bazel事始め

f:id:robonchu:20180527200814p:plain

やりたいこと

c++のビルドを簡単に行いたい

Bazelとは

Bazel install

教科書(cpp-tutorial)

Code

構成

.
├── README.md
├── WORKSPACE
├── lib
│   ├── BUILD
│   ├── hello-name.cc
│   └── hello-name.h
└── main
    ├── BUILD
    ├── hello-get-name.cc
    ├── hello-get-name.h
    └── hello-robots.cc
  1. 直下に空のWORKSPACEを作る

  2. ディレクトリがわかれる場合はそれぞれにBUILDを設置

BUILDの書き方

libの方

cc_library(
    name = "hello-name",
    srcs = ["hello-name.cc"],
    hdrs = ["hello-name.h"],
    visibility = ["//main:__pkg__"],
)

visibilityを書くことでmainの方から見えるように。

mainの方

cc_library(
    name = "hello-get-name",
    srcs = ["hello-get-name.cc"],
    hdrs = ["hello-get-name.h"],
)

cc_binary(
    name = "hello-robots",
    srcs = ["hello-robots.cc"],
    deps = [
        ":hello-get-name",
        "//lib:hello-name",
    ],
)

depsにcc_binaryで使いたいlibraryのnameを記入する。

How to build and use

  1. bazel build //main:hello-robots

  2. bazel-bin/main/hello-robots

詳しくはgit参照。

コメント

ちゃっかりGitHubでびゅー笑