gcc和arm-linux-gcc之间的关系是什么?

时间:2014-09-23 09:41:30

标签: c linux gcc arm cortex-a8

我是ARM开发的新手。现在我对ARM的跨工具链感到困惑。这里遇到了一些问题:

  1. gccarm-linux-gcc的开发人员是否相同?或者arm-linux-gcc有许多不同版本的开发人员?如果有,所有arm-linux-gcc编译器的起源是什么?是否有arm-linux-gcc的官方网站?

  2. 在何处获取arm-linux-gcc的官方文档?现在我只能从the official GNU website获取gcc的官方文档,但我从GNUTOOLCHAIN下载了arm-linux-gcc,但找不到任何文档。根据我的经验,gccarm-linux-gcc的选项并不完全相同。

  3. 最后,arm-linux-gcc的不同预建版本之间有什么区别?我猜它们之间的唯一区别是编译器的默认选项,对不对?我是否可以使用arm-linux-gcc预建arm1176来编译cortex-A8的程序?如果是这样,我应该注意哪些编译选项?

  4. 是否有关于此类事情的权威书籍?

2 个答案:

答案 0 :(得分:2)

您的问题的答案如下:

  1. 有不同的编译器选项可以为来自不同开发人员的arm进行编译。我经常使用的是Linaro和Code Sourcery。您可以在Google上搜索这些关键字并轻松找到他们的网站。

  2. arm-linux-gcc应该支持gcc的所有标志和选项,所以所有通用的东西都与gcc相比相同。所以你可以在GNU官方网站上使用gcc文档。对于特定的内容,您可以使用特定编译器的文档。

  3. 预建版本是具有特定平台默认选项的版本,但它们可能还包含一些修复程序或可能会在特定平台上运行它。例如,在RPi的情况下,你不能使用通用的linaro工具链,必须使用预建的工具链。

答案 1 :(得分:0)

使用嵌入式设备时,通常需要一个在快速主机(例如x86)上运行的交叉编译器,并为较慢的目标机器(例如ARM)编译。

arm-linux-gcc是arm的交叉编译器。它是普通的gcc编译器,但编译为在主机上运行并为ARM机器生成目标。