【问题标题】:How to use both 4.5 and 4.6 versions of arm gcc in Ubuntu?如何在 Ubuntu 中同时使用 4.5 和 4.6 版本的 arm gcc?
【发布时间】:2012-06-01 02:01:52
【问题描述】:

使用 Ubuntu 12 交叉编译 arm 代码提供了 2 个 gcc 版本,4.5 和 4.6。安装两者都会创建从工具到 4.6 版本的符号链接(例如 arm-linux-gnueabi-gcc -> arm-linux-gnueabi-gcc-4.6)。有没有一种简单的方法可以来回切换,例如gcc 符号链接到 4.5 或 4.6 ?我可以编写破解符号链接的脚本,但我希望已经有一种 Ubuntu 方法可以做到这一点。 谢谢!

【问题讨论】:

    标签: ubuntu arm cross-compiling


    【解决方案1】:

    alternatives system 允许您拥有一个可以随意摆动的符号链接。

    【讨论】:

    • alternatives 看起来很有趣,但这些 Ubuntu pkgs 不是使用它构建的。查看 /usr/bin/arm-linux-gnueabi-gcc 它是 /usr/bin/arm-linux-gnueabi-gcc-4.6 的直接符号链接,而不是 /etc/alternatives 的直接符号链接,因为 pkg 似乎需要替代方案。
    • 您可以随时提供自己的。
    • 同意。但是我正在寻找的东西是原生的,所以它不会在升级 pkgs 时中断。但绝对如果我找不到原生选项,那么这似乎是下一个最好的选择
    • 它们只是符号链接。只要可执行路径名不改变,它仍然可以工作。
    • 符号链接已由 pkg 安装创建,因此如果我执行 pkg 不知道的操作,它们将/可能在 pkg 升级时被覆盖。我仍然喜欢这个“替代品”选项,所以我可能会尝试一下,希望它不会被覆盖:)
    【解决方案2】:

    恕我直言(以及我所做的)更好、更清洁的方法是:

    1. 获取存档版本,(不要使用 apt)
    2. 把它解压到你家或 /usr/share
    3. 在你的 ~/.bashrc 中创建一些别名

      alias sourcery2009 = 'CROSS_COMPILE=/usr/share/arm-2009q3/bin/arm-none-eabi-'
      alias sourcery2010 = 'CROSS_COMPILE=/usr/share/arm-2010q1/bin/arm-none-eabi-'
      
    4. 在编译 (linux) 时,使用 make zImage sourcery2009,此步骤有很大差异,具体取决于您正在编译的项目以及他们如何获取您希望他们使用的工具链的位置/前缀,对于许多项目使用简单的 makefile,您必须在 makefile 中进行编辑以更改路径或使其将工具链路径作为 arg。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多