我正在使用x86 Ubuntu Bionic系统交叉编译一个aarch64应用程序,但遇到了glibc版本不匹配的问题。我的交叉编译工具链使用的是v2.27版本,而要运行应用程序的系统则使用v2.24版本。我认为可能是因为我的工具链版本太高,所以决定降级。
在删除所有先前的交叉编译安装后,我安装了gcc-4.8-aarch64-linux-gnu(因为我曾在另一台主机系统上成功地使用此版本交叉编译了应用程序),认为它会安装旧的aarch64版本的glibc到/usr/aarch64-linux-gnu/lib/中。然而,再次安装了v2.27版本(我验证了在安装新的交叉编译工具链之前该目录不存在)。
因此,我的问题有两个:
1.在安装gcc-4.8-aarch64-linux-gnu时,是什么确定了在我的系统上安装哪个aarch64版本的glibc?是否直接与我的系统上x86版本的glibc相关?
2.是否有正确的方式可以在我的系统上安装glibc v2.24(或更低版本)的aarch64版本?
在删除所有先前的交叉编译安装后,我安装了gcc-4.8-aarch64-linux-gnu(因为我曾在另一台主机系统上成功地使用此版本交叉编译了应用程序),认为它会安装旧的aarch64版本的glibc到/usr/aarch64-linux-gnu/lib/中。然而,再次安装了v2.27版本(我验证了在安装新的交叉编译工具链之前该目录不存在)。
因此,我的问题有两个:
1.在安装gcc-4.8-aarch64-linux-gnu时,是什么确定了在我的系统上安装哪个aarch64版本的glibc?是否直接与我的系统上x86版本的glibc相关?
2.是否有正确的方式可以在我的系统上安装glibc v2.24(或更低版本)的aarch64版本?
sudo apt install gcc-aarch64-linux-gcc
获得的。然而,当我下载了这个 https://releases.linaro.org/components/toolchain/binaries/latest-4/aarch64-linux-gnu/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz 时,它可以正常工作,因为它包含glibc
v2.19。我无法解释为什么通过sudo apt get
安装总是安装v2.27... - MulattoKidgcc-aarch64-linux-gnu
依赖于libc6-dev-arm64-cross
。查看https://packages.ubuntu.com/bionic/libc6-dev-arm64-cross,我发现它默认为```Bionic```的v2.27版本。因此,它基本上是作为依赖项安装的,并且使用最新版本。 - MulattoKid