你怎么能告诉 bazel 在 OS X 上使用不同的 C++ 编译器?
bazel build --action_env CC=/path/to/compiler //:target
Run Code Online (Sandbox Code Playgroud)
在 linux 上工作。
但是-s表明external/local_config_cc/wrapped_clang无论是什么,bazel 总是在 OSX 上运行(clang) CC。
CC只有当您使用 C++-only 工具链时才能正确工作。如果您安装了 Xcode,bazel 将检测到这一点并自动选择一个不同的工具链,即同时支持 C++ 和 ObjC 的工具链。这个工具链只能使用 Xcode 提供的 clang。
这很不幸,我提出了两种解决方案:
小智 5
实际上与最新版本的bazel指定
BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
build --action_env CC=/path/to/compiler [...]
Run Code Online (Sandbox Code Playgroud)
确实有效,因为使用了指定的编译器。但是,编译器标志仍然存在问题。如果旧编译器的编译器标志与新编译器不兼容,则存在问题。我仍然需要找出如何更改编译器标志。