如何使用 GNU autotools 交叉编译 armv5tel?

How to cross-compile with GNU autotools for armv5tel?

我有一台 运行s Linux (BusyBox) 的 ARM 机器。

# uname -a
# Linux XXXXXXXX 2.6.28 #1 PREEMPT Fri Sep 26 22:47:38 UTC 2014 armv5tel GNU/Linux

我已经在我的 Ubuntu 32 位桌面上交叉编译了一个简单的程序:

./configure --host=arm-linux-gnueabi LDFLAGS="-static"
make

但是当我尝试在 ARM 机器上 运行 它时,它给我 Segmentation Fault 错误。

程序超级简单:

#include <stdio.h>

int main()
{
    printf("Hello, World!");

    return 0;
}

这里有一些我已经知道的东西 tried/checked:

# file my_program

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

# file their_program

# their_program: ELF 32-bit LSB executable, ARM, version 1 (GNU/Linux), statically linked, stripped

我做错了什么?

显然我的交叉编译工具链不正确。 我最终使用了 crosstool-ng。顺便说一句,它使用起来非常简单,而且是一个很棒的工具,您所要做的就是为您的设备选择合适的工具链。

我用 crosstool-ng 构建了一个 arm-unknown-linux-uclibcgnueabi 工具链,它解决了我的问题。