如何在使用bazel构建时设置c ++标准版本?

时间:2016-10-26 10:47:19

标签: bazel

我是C ++的新手。我知道如何用cmake设置c ++版本,但不知道如何在bazel中设置c ++版本。

也许使用copts中的cc_libary参数进行设置,但我必须在每个cc_libary中设置此参数吗?

2 个答案:

答案 0 :(得分:8)

因此,在Bazel中指定c ++工具链的强大解决方案是使用CROSSTOOL文件。您可能会发现about the CROSSTOOL wiki页面有用。为了帮助您入门,您可以阅读Building with a custom toolchain维基页面。要了解Bazel为您自动生成crosstool时的作用,您可以阅读blog post about autoconfiguration。要获得有关如何编写功能和action_configs的更多示例,请查看CppActionConfigs.java

或者,只需将[ComVisible(true)] [Guid("F8351C66-7F0E-4E38-AE64-9A262202E230")] [ProgId("CarProject.CarFactory")] [ClassInterface(ClassInterfaceType.AutoDual)] public class CarFactory { public CarFactory() {} [DispId(0)] public Car CreateCar(int tyres) { return new Car(tyres); } } [ComVisible(true)] [Guid("83f622b9-74f4-4700-9167-52c4ce9e79aa")] [ClassInterface(ClassInterfaceType.AutoDual)] public class Car { [DispId(0)] public int NumberOfTyres { get; private set; } public Car(int tyres) { this.NumberOfTyres = tyres; } } 放入.bazelrc(存储在您的家中或WORKSPACE文件所在的文件夹中)。

答案 1 :(得分:5)

bazel build --cxxopt='-std=c++11' main:hello-world这会有效,但我想知道是否有办法全局设置此cxxopt,例如CMAKE_CXX_FLAGS