Arm 维护跨编译工具链的多个版本的最佳实践是什么

Arm 维护跨编译工具链的多个版本的最佳实践是什么,arm,cross-compiling,embedded-linux,toolchain,Arm,Cross Compiling,Embedded Linux,Toolchain,我确实安装了gcc-arm-linux-gnueabi来为arm安装交叉编译工具链。这是为我安装的4.7版。后来,我必须至少安装版本5来编译特定版本的内核,所以我确实apt-get-install gcc-5-arm-linux-gnueabi。要在所包含的每个二进制文件的上述两个版本之间切换,我必须安装更新选项的安装程序 现在我又面临一种情况,我必须安装toolchain的版本7。我已经从linaro网站()下载了这个包,这是一个tar包。现在它有大约20个二进制文件,我相信它们应该一起安装(

我确实
安装了gcc-arm-linux-gnueabi
来为arm安装交叉编译工具链。这是为我安装的4.7版。后来,我必须至少安装版本5来编译特定版本的内核,所以我确实
apt-get-install gcc-5-arm-linux-gnueabi
。要在所包含的每个二进制文件的上述两个版本之间切换,我必须安装
更新选项的安装程序

现在我又面临一种情况,我必须安装toolchain的版本7。我已经从linaro网站()下载了这个包,这是一个tar包。现在它有大约20个二进制文件,我相信它们应该一起安装(例如,-gcc,-g++,-as等应该是这个包中的默认值)。现在我真的不想一个接一个地安装
更新备选方案。我也没有将它们全部放在
/usr/bin
文件夹中,并覆盖其他两个版本的二进制文件


将所有3个工具链环境一起维护的最佳实践是什么?

通常,您可以将工具链保存在单独的目录中(例如/usr/bin/{v4、v6、v7}。然后,您可以让shell的
$PATH
直接包含这些目录,或者(在Linux内核和许多其他项目中),只需在构建时设置
CROSS\u COMPILE
环境变量

例如,要使用v6构建:

make CROSS_COMPILE=/usr/bin/v6/arm-gnueabi-
和v7:

make CROSS_COMPILE=/usr/bin/v7/arm-gnuabi-
通常,您不会在
/usr/bin
中创建子目录,因此您可能希望在
/opt/arm toolschains/vN/
之类的位置安装工具链