使用 Bazel 构建时如何设置 C 标准版本?

新手上路,请多包涵

我对 C++ 有点陌生。我知道如何使用 CMake 设置 C++ 版本,但不知道如何在 Bazel 中设置 C++ 版本。

也许在 cc_libary 中设置了 copts 参数,但我必须在每个 cc_libary 中设置它?

原文由 ryancheung 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.2k
2 个回答

要使用 Bazel 中的默认 C++ 工具链设置标准,您可以设置环境变量 BAZEL_CXXOPTS ,例如 BAZEL_CXXOPTS="-std=c++14" 。您也可以从命令行或 .bazelrc 使用 --repo_env=BAZEL_CXXOPTS 设置它。 : 是标志分隔符。

或者,您可以将 --cxxopt 传递给 Bazel,或将其放入 .bazelrc ,例如 --cxxopt='-std=c++11'

在 Bazel 中指定 C++ 工具链的可靠解决方案是使用 CcToolchainConfigInfo 。请参阅 https://docs.bazel.build/versions/master/tutorial/cc-toolchain-config.htmlhttps://docs.bazel.build/versions/master/cc-toolchain-config-reference 上的文档。 .html

原文由 hlopko 发布,翻译遵循 CC BY-SA 4.0 许可协议

bazel build --cxxopt='-std=c++11' main:hello-world 这会起作用,但我想知道是否有办法在全球范围内设置这个 cxxopt ,比如 CMAKE_CXX_FLAGS

原文由 ryancheung 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题