簡體   English   中英

我如何用 Bazel 構建這個簡單的例子?

[英]How do I build this simple example with Bazel?

假設我有一個這樣的項目:

$ tree . 
├── WORKSPACE
├── include
│   └── header.hpp
└── main.cpp
└── BUILD.bazel

main.cpp看起來像這樣:

#include "header.hpp"

int main() {
  return 0;
}

我的BUILD.bazel文件應該是什么樣的?

我目前的嘗試:

cc_binary(
  name = "app",
  srcs = [
    "main.cpp",
    "include/header.hpp",
  ],
)

編輯:忘記提及我的WORKSPACE文件


編輯:找到了一個解決方法,但我認為它不是很優雅:

cc_library(
  name = "app-hdrs",
  hdrs = [
    "include/header.hpp",
  ],
  srcs = [
    "include/header.hpp",
  ],
  strip_include_prefix = "include",
)

cc_binary(
  name = "app",
  srcs = [
    "main.cpp",
  ],
  deps = [
    ":app-hdrs",
  ],
)

您的項目文件夾中需要一個名為WORKSPACE的文件:

$ tree . 
├── include
│   └── header.hpp
└── main.cpp
└── BUILD.bazel
└── WORKSPACE

然后您可以使用以下命令構建您的應用程序:

bazel build //:app

並在copts -flag 中指定包含路徑:

cc_binary(
  name = "app",
  srcs = [
    "main.cpp",
    "include/header.hpp",
  ],
  copts = ["-Iinclude", "-Wall", "-Werror"],
)

cc_binary(
  name = "app",
  includes = [ "include" ],
  srcs = [
    "main.cpp",
    "include/header.hpp",
  ],
  copts = [ "-Wall", "-Werror" ],
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM