2013-02-17 57 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。

相關問題