我是ARM开发的新手。现在我对ARM的跨工具链感到困惑。这里遇到了一些问题:
gcc
和arm-linux-gcc
的开发人员是否相同?或者arm-linux-gcc
有许多不同版本的开发人员?如果有,所有arm-linux-gcc
编译器的起源是什么?是否有arm-linux-gcc
的官方网站?
在何处获取arm-linux-gcc
的官方文档?现在我只能从the official GNU website获取gcc的官方文档,但我从GNUTOOLCHAIN下载了arm-linux-gcc
,但找不到任何文档。根据我的经验,gcc
和arm-linux-gcc
的选项并不完全相同。
最后,arm-linux-gcc
的不同预建版本之间有什么区别?我猜它们之间的唯一区别是编译器的默认选项,对不对?我是否可以使用arm-linux-gcc
预建arm1176
来编译cortex-A8
的程序?如果是这样,我应该注意哪些编译选项?
是否有关于此类事情的权威书籍?
答案 0 :(得分:2)
您的问题的答案如下:
有不同的编译器选项可以为来自不同开发人员的arm进行编译。我经常使用的是Linaro和Code Sourcery。您可以在Google上搜索这些关键字并轻松找到他们的网站。
arm-linux-gcc应该支持gcc的所有标志和选项,所以所有通用的东西都与gcc相比相同。所以你可以在GNU官方网站上使用gcc文档。对于特定的内容,您可以使用特定编译器的文档。
预建版本是具有特定平台默认选项的版本,但它们可能还包含一些修复程序或可能会在特定平台上运行它。例如,在RPi的情况下,你不能使用通用的linaro工具链,必须使用预建的工具链。
答案 1 :(得分:0)
使用嵌入式设备时,通常需要一个在快速主机(例如x86)上运行的交叉编译器,并为较慢的目标机器(例如ARM)编译。
arm-linux-gcc是arm的交叉编译器。它是普通的gcc编译器,但编译为在主机上运行并为ARM机器生成目标。