我是C ++的新手。我知道如何用cmake设置c ++版本,但不知道如何在bazel中设置c ++版本。
也许使用copts
中的cc_libary
参数进行设置,但我必须在每个cc_libary中设置此参数吗?
答案 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
。