0

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

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

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

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

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

4

1 回答 1

-2

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

于 2021-10-29T07:57:36.473 回答