【问题标题】:Flag for cross-compiling for ARMv6l with arm-linux-gnueabi-gcc使用 arm-linux-gnueabi-gcc 为 ARMv6l 进行交叉编译的标志
【发布时间】:2014-01-07 10:37:56
【问题描述】:

我在 C 中交叉编译一个简单的 HelloWorld 有一些困难。主机是 Ubuntu X86_64,目标是运行 Linux 内核 2.6.21.7 的 ARMv6 兼容处理器 rev 7 (v6l)

如果我尝试:

arm-linux-gnueabi-gcc -static -march=armv6 hello.c -o hello

我在目标上遇到分段错误。文件命令输出为:

hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.31, BuildID[sha1]=0x0c77ad13c58160eab9dcbf2feeeaf4d27a4319cb, not stripped

我在 GCC 文档中没有看到任何“armv6l”标志。是否可以使用 GCC 交叉编译此架构?

【问题讨论】:

  • arm-linux-gnueabi-gcc hello.c -o hello 呢?如果这不起作用,那么问题可能出在您的代码中。
  • 感谢您的回答,但在发布之前我确实尝试了您的解决方案。我在对我有用的解决方案下方发布了。

标签: c linux gcc arm cross-compiling


【解决方案1】:

它与 sourcery 一起使用:https://sourcery.mentor.com/sgpp/lite/arm/portal/release2029

安装后,我必须重新启动计算机,然后使用以下命令编译正常:

arm-none-linux-gnueabi-gcc -o hello -static hello.c

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2018-01-18
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2013-01-29
    相关资源
    最近更新 更多