首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

[Bazel]自定义工具链

本文会讲述 Bazel 自定义工具链的两种方式,Platform 和 Non-Platform 方式。会存在这两种方式的原因是 Bazel 的历史问题。例如,C++ 相关规则使用 --cpu 和 --crosstool_top 来设置一个构建目标 CPU 和 C++ 工具链,这样就可以实现选择不同的工具链构建 C++ 项目。但是这都不能正确地表达出“平台”特征。使用这种方式不可避免地导致出现了笨拙且不准确的构建 APIs。这其中导致了对 Java 工具链基本没有涉及,Java 工具链就发展了他们自己的独立接口 --java_toolchain。因此非平台方式(Non-Platform)的自定义工具链实现并没有统一的 APIs 来规范不同语言的跨平台构建。而 Bazel 的目标是在大型、混合语言、多平台项目中脱颖而出。这就要求对这些概念有更原则的支持,包括清晰的 APIs,这些 API 绑定而不是分散语言和项目。这就是新平台(platform)和工具链(toolchain) APIs 所实现的内容。

03

Github学习文档-2

你可能会问学习 GitHub 和 Git 有什么关系吗?首先 GitHub 的功能本身就是基于 Git 来实现。现在的问题是 Git 是什么?Git 是一个开源的分布式版本控制系统,简单的来说就是一个强大的版本管理工具,GitHub 因为集成了 Git,所以具有版本管理的功能,在加上自身的社区功能,如订阅,讨论,关注,分享代码片段等。Git 是 Linux 之父—— Linus 两周周写成的(在此默默崇拜大牛5秒钟),最初是为了帮助管理 Linux 内核开发而设计的版本控制软件,这是一款开源的软件。(在这里说一下,开源的意思就是开放源代码,用户可以在遵守项目协议的基础上使用和修改源代码。)版本控制工具可不止 Git,还有 SVN 集中式的版本管理。但与 SVN 相比,Git 的优势是分布式,SVN 是把项目托管到一个中央服务器上,而 Git 则是分布在每个使用者的电脑上的,每个使用者都有项目的所有信息。使用 Git 可以在本地操作 GitHub 上的项目,增删改,操作完了,在推送到 GitHub 上保存。

03
领券