c - 为 ARM 编译时出现 GCC 错误

标签 c gcc linker embedded arm

我在尝试为 ARM Cortex-M4 编译一些代码时收到以下错误 使用

gcc -mcpu=cortex-m4 arm.c  

`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
arm.c:1: error: bad value (cortex-m4) for -mtune= switch

我正在关注GCC 4.7.1 ARM options 。不确定我是否错过了一些关键选项。任何使用 GCC for ARM 的启动都会非常有帮助。

最佳答案

正如 starblue 在评论中暗示的那样,该错误是因为您使用的是为 x86 CPU 编译而构建的 native 编译器,而不是用于编译到 ARM 的交叉编译器。

GCC 在任何给定的编译器二进制文件中仅支持单一通用架构类型 - 因此,尽管 GCC 的相同副本可以针对 32 位和 64 位 x86 机器进行编译,但您无法同时编译到 x86 和 ARM使用相同的 GCC 副本 - 您需要一个特定于 ARM 的 GCC。

(正如 auselen 所建议的,获得一个预构建的工具将为您节省大量工作,即使您只是将其用作设置的起点。您需要有 GCC、binutils 和至少一个 C 库,这些都是独立的开源项目,预构建版本已经完成了组合工作。我会推荐 Sourcery CodeBench Lite 因为这是我公司制作的一个,我确实认为它是一个相当不错。)

关于c - 为 ARM 编译时出现 GCC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166252/

相关文章:

c++ - Eclipse中的Boost链接错误

c - MPI 发送数组数组

c - sprintf 或 printf 的最小实现

c++ - GCC 4.8 中 C++11 thread_local 变量的性能损失是多少?

c++ - 函数声明和未解析的外部

c++ - LNK1106 大二进制资源

c - 用信号处理通信

c - 将数组的元素添加为 a[0],a[1]+a[2],a[3]+a[4]+a[5],a[6]+a[7]+a[8] +a[9]...等等

c - 使用#include <>时如何修改.h文件的路径?

c++ - 在 C+ +'s ` extern "C"` block 中使用 c99