2013-02-17 59 views
8

有人能告诉我如何为SA1100微处理器安装交叉编译器(编程语言C)吗?我有Ubuntu的12.04 LTS。我是Linux的完全noobot,我昨天刚安装了Ubuntu。我需要一个名为“arm-unknown-linux-gnu-gcc”的GCC编译器的特殊变体,但不知道如何去做。如何为微处理器SA1100安装交叉编译器(在ubuntu 12.04 LTS上)?

有人可以帮我吗?

+0

你试过'apt-get install gcc-arm-linux-gnueabi'或'apt-get install gcc-4.7-arm-linux-gnueabi'吗?我还强烈建议能够为你的Linux系统编译一个普通的C程序(即学习'gcc','make' ...命令的基础知识,以及如何使用像emacs或gedit这样的编辑器...... )以及所需的交叉编译器也取决于SA1100硬件板上运行的系统。 – 2013-02-17 13:56:04

+0

我知道如何编译一个普通的C程序。那是'gcc -o hello hello.c'。我已经尝试'apt-get安装gcc-arm-linux-gnueabi'并安装,但交叉编译仍然无效。我想用(例如)'arm-unknown-linux-gnu-gcc -O2 -Wall -o hello hello.c'来交叉编译程序,但它告诉我找不到命令。你能否告诉我“make”的用途?谢谢,我感谢你的帮助! – n00b1990 2013-02-17 14:44:51

+0

你应该使用'gcc -Wall -g hello.c -o hello';关于'make',阅读http://www.gnu.org/software/make/manual/html_node/index.html并使用'arm-linux-gnueabi-gcc'程序作为交叉编译器 – 2013-02-17 14:47:58

回答

22

正如我在评论说,试图

apt-get install gcc-arm-linux-gnueabi 

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

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

学习使用GNU make -e.g.通过读取其documentation并使用arm-linux-gnueabi-gcc作为交叉编译程序来编写Makefile-s-。 (当make没有足够帮助时,您可能需要使用remake来调试您的Makefile-s)

您可以使用软件包获取安装文件列表,例如: dpkg -L gcc-arm-linux-gnueabi

为ARM的交叉编译的程序执行很可能需要一个Linux内核与一些libc(或静态链接它)至少在ARM主板上,你需要一些方法来从Linux桌面的传输二进制程序ARM硬件。

5

添加页面:https://launchpad.net/gcc-arm-embedded 两者的源代码是相同的。目前支持Ubuntu 10.04/12.04/13.04/13.10/14.04 32位和64位。

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

下面是在14.04之前在Ubuntu上安装此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。

相关问题