Linux aarch64的glibc版本
我正在我的Linux aarch64的glibc版本,linux,ubuntu,glibc,libc,Linux,Ubuntu,Glibc,Libc,我正在我的x86 Ubuntu Bionic系统上交叉编译aarch64的应用程序,我遇到了glibc版本不匹配的问题。我的交叉编译工具链使用的是v2.27,而运行应用程序的系统使用的是v2.24。我想这可能是因为我的工具链版本太高,所以我决定降级 在删除所有以前的交叉编译安装后,我安装了gcc-4.8-aarch64-linux-gnu(因为我已经在不同的主机系统上成功地用这个版本交叉编译了应用程序),认为它会将aarch64版本的glibc安装到/usr/aarch64-linux-gnu/
x86 Ubuntu Bionic
系统上交叉编译aarch64
的应用程序,我遇到了glibc
版本不匹配的问题。我的交叉编译工具链使用的是v2.27,而运行应用程序的系统使用的是v2.24。我想这可能是因为我的工具链版本太高,所以我决定降级
在删除所有以前的交叉编译安装后,我安装了gcc-4.8-aarch64-linux-gnu
(因为我已经在不同的主机系统上成功地用这个版本交叉编译了应用程序),认为它会将aarch64
版本的glibc
安装到/usr/aarch64-linux-gnu/lib/
。不过,还是安装了v2.27(在安装新的交叉编译工具链之前,我验证了该目录不存在)
所以我的问题有两个:
gcc-4.8-aarch64-linux-gnu
时,是什么决定了我的系统上安装了glibc
的哪个aarch64
版本?它是否直接绑定到我自己系统的x86
版本的glibc
aarch64
版本的glibc
v2.24(或更低版本)问题的答案完全取决于您使用的交叉工具链。有很多。看起来您安装的系统有一个bug,系统头泄漏到工具链sysroot中。否则,glibc版本不匹配根本就不是问题。我尝试使用的交叉工具链是通过
sudo apt install gcc-aarch64-linux-gcc
获得的。然而,当我下载这一个时,它工作了,因为它包括glibc
v2.19。我无法解释为什么通过sudo apt get安装总是安装v2.27…所以我环顾四周,提出了一个假设:我看到gcc-aarch64-linux-gnu
依赖于libc6-dev-arm64-cross
。看一看,对于Bionic
,它默认为v2.27。所以本质上,它是作为依赖项安装的,并且使用最新版本。