c++ - 如何在 Bazel 项目或工作区中设置 C++ 标准?
问题描述
我目前正在将一个多包 C++14 项目迁移到 Bazel,但是每当我$ bazel build
在 linux 上运行时,我最终都会遇到构建错误,因为 Bazel 正在使用-std=c++0x
.
该项目的要求之一是在构建系统启动并运行后逐渐将其包迁移到 C++17。但是,在浏览 Bazel 的文档后,我没有看到有关如何设置项目的目标 C++ 标准版本的参考。CMake 通过它的CXX_STANDARD
target 属性轻松轻松地处理了这个问题,但到目前为止,我没有看到 Bazel 支持这个用例。
考虑到这一点,有谁知道 Bazel 是否允许用户为特定项目/工作区指定 C++ 标准版本?如果是这样,是否可以提供一个最小的工作示例?
解决方案
当您需要学习如何调整 C/C++ 工具链时, envoy项目是一个很好的起点。在您的情况下,只需将该行添加到.bazelrc
文件中:
build:linux --cxxopt=-std=c++14
推荐阅读
- tomcat - 就 CATALINA_HOME 环境变量而言,让 TomEE 和 Tomcat 在 Windows 上运行
- python - Python async - 所有 aiohttp 请求一次发送
- javascript - JavaScript将变量添加到href
- php - 访问模型内的值
- visual-studio-code - VSCode:tasks.json:dotnet 构建输出参数失败并出现 MSBUILD:错误 MSB1001:
- c# - 基于读取输入输入实例化子类
- javascript - 如何从子文件夹运行 gulpfile.babel.js(ES6) 任务?
- django - 布尔值作为复选框并保存表单
- c# - Console.Writeline(整数); 即使应该有小数,也打印没有小数的数字
- javascript - 反应导航不导航