Android 交叉编译GLibC 2.24失败,错误为1

Android 交叉编译GLibC 2.24失败,错误为1,android,linux,makefile,cross-compiling,glibc,Android,Linux,Makefile,Cross Compiling,Glibc,我正在尝试使用gcc ARM linux AndroidABI编译器交叉编译用于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-

我正在尝试使用gcc ARM linux AndroidABI编译器交叉编译用于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
我在网上浏览了一下为什么会发生这样的事,没有发现任何东西。这一错误的原因可能是什么

我正在运行Ubuntu 14.04.5 LTS 64位

我正在运行Ubuntu 14.04.5 LTS 64位

那是一个毫无意义的声明。64位什么?是sparc64、AARC64、x86_64还是其他什么

很可能您正在使用x86_64。在这种情况下,您使用的配置都是错误的。-host=arm-linux androideabi告诉configure您正在构建一台arm-linux机器,这与事实相差甚远

您可能的意思是,您希望为arm linux AndroidABI目标构建,在这种情况下,正确的configure命令如下所示:

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

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

谢谢,将-host替换为-target做到了。错误-主机是生成的二进制文件将在其上运行的机器,而不是您正在构建的机器-build是您正在编译的机器。