什么是工具链?

What exactly is a toolchain?

我在 google 上搜索并得到以下结果。

a toolchain is a set of programming tools that are used to perform a complex >software development task or to create a software product, which is typically >another computer program or a set of related programs

从上面的段落中,我了解到工具链或编译器工具链用于开发任何软件产品,例如OS(我不确定,如果我错了请指正)

如果是这样,我目前正在使用 Ubuntu 16.04。我发现它上面预装了一个编译器工具链。但是 OS 已经完全开发,那么在构建单独的软件产品之前,这里还需要什么工具链?

构建 OS 本身确实需要完整的工具链(编译器、汇编器、链接器等),但构建其他软件包也是必需的。如果您在 Linux 下载一个软件包,其安装说明说要在 ./configure && make && make install 上做一些变体,那么您将使用该工具链进行编译。同样,Linux(以及所有 GNU/Ubuntu 软件包)本身是在 GNU/Linux 系统上开发的,因此需要一个工具链来支持在下一版本的操作系统上工作。