如何使用bazel在OS X上设置c ++编译器?

时间:2017-12-04 00:01:10

标签: c++ macos bazel

如何告诉bazel在OS X上使用不同的C ++编译器?

bazel build --action_env CC=/path/to/compiler //:target

适用于Linux。

但是-s表明,无论external/local_config_cc/wrapped_clang是什么,bazel总是在OSX上以CC(clang)运行。

3 个答案:

答案 0 :(得分:2)

Rebuild all只有在使用C ++工具链时才能正常工作。如果您安装了Xcode,bazel将检测到这一点并自动选择一个支持C ++和ObjC的工具链。此工具链只能使用Xcode提供的clang。

这很不幸,我提出了两个解决方案:

  1. 提交bazel功能请求,以便选择使用哪个工具链。这将允许您告诉bazel即使您安装了Xcode,您也希望仅使用C ++工具链和自定义编译器。这很简单,可以在短时间内完成。
  2. 提交bazel功能请求,以便选择与C ++ / ObjC工具链一起使用的编译器。我不能评论这个的可行性,我对osx几乎一无所知,我不知道用一个没有提供Xcode的编译器编译ObjC是否有意义......

答案 1 :(得分:1)

答案 2 :(得分:0)

实际上是使用最新版本的bazel指定

BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
build --action_env CC=/path/to/compiler  [...]
在使用指定编译器的意义上,

确实有效。但是编译器标志仍然存在问题。如果旧编译器的编译器标志与新编译器不兼容,则存在问题。我仍然需要找出如何更改编译器标志。