0

我正在尝试编译一个程序以在具有 ARM926EJ-S 处理器的 Linux 驱动板上运行。所以我安装了 Debian 嵌入式交叉开发工具链,并尝试在 gcc 中使用 -march=armv5te 编译 Hello World。当我尝试在板上运行二进制文件时,它因找不到文件错误而崩溃(由于库版本),之后我尝试使用 -static 标志进行编译,但出现了 seg 错误(__libc_start_main () 中的 0x0000827c,gdb 先生说通过 gdbserver)。

关于如何在这里运行以使某些东西运行的任何想法?

4

2 回答 2

0

显然,解决方案是尝试尽可能多的工具链。在花费太多时间编译工具链之后,您最终会找到一个可行的。uClibc buildroot 在这种情况下。

于 2013-01-15T14:20:15.827 回答
0

您可以在 Linaro 页面上找到支持 ARM926EJ-S 的工具链。使用 Linaro 项目中最新的arm-linux-gnueabi。我目前使用的是 gcc 4.9.4 版本,您可以在此处找到

建议使用 -mcpu=arm926ej-s 代替 -march 和 -mtune。请参阅gcc 文档,因为它为您指定的处理器结合了 -march 和 -mtune。它已被 x86 弃用,但不适用于 arm。

其他可能性可能是通过crosstools-ng构建您自己的工具链。但是,如果您不需要某些特定设置(例如仅使用静态库),Linaro 工具链可以开箱即用。

于 2018-04-13T07:38:47.133 回答