交叉编译 GLibC 2.24 失败并出现错误 1

Cross-compiling GLibC 2.24 fails with Error 1

我正在尝试使用 gcc-arm-linux-androideabi 编译器为 ARM (Android) 交叉编译 GLibC 2.24。这是我使用的 ./configure 语法:

../glibc-2.24/configure --prefix=/usr --host=arm-linux-androideabi --with-headers=/usr/include

但是,当我 运行 make 时,它​​失败并出现以下错误:

In file included from
../sysdeps/arm/libc-tls.c:19:0:
../csu/libc-tls.c: In function '__libc_setup_tls':
../csu/libc-tls.c:191:1: error: '__ARM_NR_set_tls' undeclared (first use in this function)
../csu/libc-tls.c:191:1: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/home/red/glibc-build/csu/libc-tls.o] Error 1
make[2]: Leaving directory `/home/red/glibc-2.24/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/home/red/glibc-2.24'
make: *** [all] Error 2

我浏览了网页以了解发生的原因,但没有找到任何信息。导致此错误的原因可能是什么?

我是 运行ning Ubuntu 14.04.5 LTS 64 位。

I am running Ubuntu 14.04.5 LTS 64-bit.

这是一个毫无意义的声明。 64位什么?是 sparc64aarch64x86_64 还是别的什么?

很可能您正在使用 x86_64。在那种情况下,您使用 configure 完全错误。 --host=arm-linux-androideabi 告诉 configure 您正在 ARM linux 机器上构建,这与事实相去甚远。

你的意思可能是你想为 arm-linux-androideabi target 构建,在这种情况下,正确的 configure 命令类似于:

configure --target=arm-linux-androideabi --prefix=/usr ...

您的 --with-headers 设置也很可能不正确:您几乎肯定不想使用来自 x86_64 主机的 /usr/include 来构建 arm 目标。