首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cc_toolchain_suite和register_toolchains有什么区别?

cc_toolchain_suite和register_toolchains有什么区别?
EN

Stack Overflow用户
提问于 2019-10-08 17:55:44
回答 1查看 646关注 0票数 3

在C++工具链的上下文中,我试图理解cc_toolchain_suite和register_toolchains概念的区别,在我看来,它们似乎达到了相同的目的:基于命令行参数选择一个工具链。

参见https://docs.bazel.build/versions/master/toolchains.html for register_toolchains - https://docs.bazel.build/versions/master/cc-toolchain-config-reference.html for cc_toolchain_suite

有人能帮助理解这两个概念背后的微妙之处吗?

EN

回答 1

Stack Overflow用户

发布于 2022-02-01 04:16:34

TL;DR cc_toolchain_suite是遗留工具链配置系统的一部分。它仍然存在于Bazel中,因为对新API的迁移还没有完成。register_toolchains是更新的、统一的工具链API的一部分。在可能的情况下使用register_toolchains而不是cc_toolchain_suite/--*crosstool_top

最初,“工具链”的概念在Bazel中没有标准化,因此Java工具链的实现将与cc工具链非常不同。

在统一的starlark工具链API之前,cc工具链是在原始文本格式的“跨国界”文件中指定的。随着platforms和统一工具链API的引入,CROSSTOOL文件中的概念几乎被转换成新的统一平台/工具链starlark API。这主要是为了确保新旧API之间的兼容性。

旧的“CROSSTOOL”配置系统中的一个概念是“工具链套件”,它允许您定义一组针对不同CPU的工具链(这是在平台API引入之前)。

据我所知,cc_toolchain_suite仍然是Bazel的starlark的一部分的唯一原因是,一些苹果/安卓工具链还没有被完全迁移。

下面是几个方法在哪里的例子。请注意,这些工具链不再使用cc_toolchain_suite

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58291691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档