【问题标题】:What is the best practice to maintain multiple versions of cross-compile toolchains维护多个版本的交叉编译工具链的最佳实践是什么
【发布时间】:2018-08-06 05:18:06
【问题描述】:

我做了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 文件夹中并覆盖其他两个版本的二进制文件。

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

【问题讨论】:

    标签: arm cross-compiling embedded-linux toolchain


    【解决方案1】:

    通常,您可以将工具链保存在单独的目录中(例如 /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/ 之类的地方。

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 2014-02-10
      • 2023-03-20
      • 2018-08-26
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多