如何在Ubuntu 12.04 LTS上安装针对微处理器SA1100的交叉编译器?

8

请问有人能告诉我如何在SA1100微处理器上安装交叉编译器(使用C语言进行编程)?我的操作系统是Ubuntu 12.04 LTS。我对Linux完全不了解,昨天刚刚安装了Ubuntu。我需要一种名为“arm-unknown-linux-gnu-gcc”的特殊GCC编译器变体,但不知道该如何安装。

请问有人能帮助我吗?


你尝试过 apt-get install gcc-arm-linux-gnueabi 或者 apt-get install gcc-4.7-arm-linux-gnueabi 吗?我也强烈建议您能够为您的Linux系统编译一个普通的C程序(即学习 gccmake ... 命令的基础知识以及如何使用像 emacsgedit 这样的编辑器...),而您想要的交叉编译器也取决于运行在SA1100硬件板上的系统。 - Basile Starynkevitch
我知道如何编译普通的C程序。那是gcc -o hello hello.c。我已经尝试过apt-get install gcc-arm-linux-gnueabi并安装了它,但交叉编译仍然不起作用。我想用(例如)arm-unknown-linux-gnu-gcc -O2 -Wall -o hello hello.c来交叉编译程序,但它告诉我找不到该命令。你能告诉我make是什么吗?谢谢,我感激你的帮助! - n00b1990
额外提示,使用“dpkg -L gcc-arm-linux-gnueabi”命令来了解“gcc-arm-linux-gnueabi”软件包安装的文件。 - Basile Starynkevitch
@BasileStarynkevitch 您可能想发布一个答案。 - Eliah Kagan
http://askubuntu.com/questions/250696/cross-compile-for-arm - Ciro Santilli OurBigBook.com
显示剩余4条评论
2个回答

22

正如我在评论中所说,请尝试

apt-get install gcc-arm-linux-gnueabi 
apt-get install gcc-4.7-arm-linux-gnueabi

我还强烈建议您学习如何为Linux系统编译普通的C程序(即学习使用基本的gccmake ...命令并了解如何使用一些编辑器,如emacsgedit等),而您所需的交叉编译器也取决于运行在SA1100硬件板上的系统。不要忘记对任何GCC编译都使用-Wall。 您可能希望能够调试程序(在编译时传递-g给GCC,并使用gdb调试器)。当您的程序运行良好时,使用-O2编译它以请求GCC优化其机器代码。

通过阅读其文档来学习使用GNU make -例如编写Makefile -并使用arm-linux-gnueabi-gcc作为交叉编译器程序。(当make不能提供足够的帮助时,您可能需要使用remake来调试Makefile

您可以使用例如dpkg -L gcc-arm-linux-gnueabi获取安装有包的文件列表。

一个交叉编译的ARM可执行程序非常可能需要在ARM主板上至少有一些libc(或静态链接),而且您需要某种方式将二进制程序从Linux桌面传输到ARM硬件。


5

添加PPA:

https://launchpad.net/gcc-arm-embedded

这两个的源代码是相同的。目前支持Ubuntu 10.04/12.04/13.04/13.10/14.04的32位和64位。

https://help.launchpad.net/Packaging/可以找到有关Launchpad PPA的详细说明。该网站解释了如何设置PPA以及如何添加现有PPA并从中安装软件。

以下是在Ubuntu 14.04之前从此PPA安装工具链的快速步骤。打开终端并输入:

  1. sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
  2. sudo apt-get update
  3. sudo apt-get install gcc-arm-none-eabi

要删除已安装的工具链,只需执行:

sudo apt-get remove gcc-arm-none-eabi

要更新工具链,只需重复第2步和第3步即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接