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

标签 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 的不同预构建版本之间有什么区别?我想它们之间的唯一区别是编译器的默认选项,对吗?我可以为 arm1176 使用预构建的 arm-linux-gcc 来为 cortex-A8 编译程序吗?如果可以,我应该注意哪些编译选项?

  4. 有没有什么权威的书讲这些?

最佳答案

您的问题的答案如下:

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

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

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

关于c - gcc 和 arm-linux-gcc 之间的关系是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25991811/

相关文章:

gcc - gcc 中的 SSE(SIMD 扩展)支持

c++ - __do_global_ctors_aux 未显示在 objdump 中

c++ - 代码在调试器中有效,但在可执行程序中无效

c - 如何正确地重复使用 curl 句柄

C代码到快速转换

mysql - 如何从Linux启动mysql

c++ - 将我的 c++ 程序的数据保存在 linux 文件系统中的什么位置以便能够访问它?

windows - 编写可移植应用程序时应该在哪里创建 PID/锁定文件

c++ - 是否可以在 gcc 3.3+ 中以旧方式使用 __func__? (C++)

结合 C 和汇编代码