【问题标题】:Different compiler flags for different compilers?不同编译器的不同编译器标志?
【发布时间】:2021-12-10 11:25:15
【问题描述】:

我有一个cc_library (tbb),它需要某些编译器 (Clang) 上的编译器标志 -mwaitpkg 才能成功编译。同时,还有老版本的 GCC(4.9)不知道这个标志,因此通过 GCC 4.9 编译会报错:

gcc: error: unrecognized command line option '-mwaitpkg'

在更高级的 Bazel 设置中,我想可以使用密封工具链来解决这个问题。这样,每个工具链都可以提供自己的一组编译器标志。尽管如此,我不想强​​制执行任何特定的工具链,而且我不确定这是否是正确的方法(将 copts 移至工具链?)。

同时引入config 也是解决此问题的一种方法。例如。 bazel build --config=waitpkg //...。但这需要用户知道这个配置并且知道使用waitpkg的细节。

为不同的编译器处理不同的编译器标志的正确“Bazel-way”是什么?

【问题讨论】:

    标签: gcc clang bazel tbb intel-oneapi


    【解决方案1】:

    标志 '-mwaitpkg' 受 GCC 版本 9.3、Clang* 12 和这些工具的更新版本支持。 如果您使用早期版本的 GCC 构建 Bazel,则应删除该标志,否则会导致编译错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      相关资源
      最近更新 更多