维护多个版本的交叉编译工具链的最佳做法是什么

What is the best practice to maintain multiple versions of cross-compile toolchains

apt-get install gcc-arm-linux-gnueabi 为 arm 安装了交叉编译工具链。这为我安装了 4.7 版。后来我必须至少安装版本 5 才能编译特定版本的内核,所以我做了 apt-get install gcc-5-arm-linux-gnueabi 。要在每个包含的二进制文件的上述 2 个版本之间切换,我必须安装 update-alternatives.

的设置

现在我再次面临必须安装工具链版本 7 的情况。我已经从 linaro 网站 (link) 下载了这个包,这是一个 tar 包。现在它有大约 20 个二进制文件,我相信它们都应该一起安装(即 -gcc、-g++、-as 等应该是这个包的默认值)。现在实在不想一个个一个个安装update-alternatives了。我也没有将它们全部放在 /usr/bin 文件夹中并覆盖其他 2 个版本的二进制文件。

同时维护所有 3 个工具链环境的最佳做法是什么?

一般来说,您可以将工具链放在单独的目录中(例如 /usr/bin/{v4, v6, v7}。然后,您可以将 shell 的 $PATH 直接包含这些目录,或者(在 Linux 内核和许多其他项目的情况下),只需在构建时设置 CROSS_COMPILE 环境变量。

例如,要使用 v6 构建:

make CROSS_COMPILE=/usr/bin/v6/arm-gnueabi-

和 v7:

make CROSS_COMPILE=/usr/bin/v7/arm-gnuabi-

通常,人们不会在 /usr/bin 中创建子目录,因此您可能希望将工具链安装在 /opt/arm-toolchains/vN/.

等位置