无法切换gcc版本

无法切换gcc版本,gcc,bazel,Gcc,Bazel,在Ubuntu 16.04.2上,我试图用一个更新的gcc编译代码 因此,我做了以下工作: 在工作区中创建一个文件tools/cpp/CROSSTOOL 将bazel repo的最新CROSSTOOL内容复制到 在CROSSTOOL文件中,在标识符local\u linux下,将/usr/bin/gcc更改为/usr/bin/gcc-7 调用bazel build//foo 当我输出为构建//foo:foo而执行的命令行时,它调用/usr/bin/gcc 有人能指出我做错了什么吗?您可能正在使用

在Ubuntu 16.04.2上,我试图用一个更新的gcc编译代码

因此,我做了以下工作:

  • 在工作区中创建一个文件
    tools/cpp/CROSSTOOL
  • 将bazel repo的最新CROSSTOOL内容复制到
  • 在CROSSTOOL文件中,在标识符
    local\u linux
    下,将
    /usr/bin/gcc
    更改为
    /usr/bin/gcc-7
  • 调用
    bazel build//foo
  • 当我输出为构建
    //foo:foo
    而执行的命令行时,它调用
    /usr/bin/gcc


    有人能指出我做错了什么吗?

    您可能正在使用静态crosstool,它只用于引导和一些测试(以及其他一些细节)。bazel通常使用的是tools/cpp/CROSSTOOL.tpl,它是由tools/cpp/cc_configure.bzl填充的模板。这是检查CC环境变量的脚本,如果设置了,它会将其用于gcc


    当然,您可以使用静态crosstool,您只需使用
    --crosstool\u top=/some/crosstool
    标志告诉bazel。您可以将其保存在本地
    .bazelrc

    项目中设置
    CC
    环境确实有效,但我不想忘记将其保存在我的环境中。有趣的是,它似乎确实使用了
    CC
    over CROSSTOOL!?