我的linux机器是x86_64-redhat-linux。
不过我正在使用另一个手臂工具链aarch64-linux-gnu-gcc在这台机器上构建(我不需要运行我在这台机器上构建的东西,只需构建,所以使用arm工具链来构建应该很好)
我收到以下错误:
aarch64-linux-gnu-gcc: /lib64/libc.so.6:
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)
所以当前默认共享库路径指向/lib64/libc.so.6,我不想更新它,因为我不是这台机器的唯一用户,我如何使用自己的libc.so.6,可以我将搜索路径重定向到另一个目录?
答案1
问题
GLIBC 2.12已安装,正如OP的标题所示,他正在尝试使用交叉编译工具链需要GLIBC >2.14。 OP 表示他也受到限制,因为他无法更新系统。
注意事项
步骤 3 中的以下列表用于构建变更根。如果可能,请使用发行版存储库中包含的软件包。如果存储库中的最新版本等于在changeroot之外安装的版本,请停止步骤3,并使用在线包搜索,例如RPM查找找到更新的版本,然后继续。 请勿在 changroot 之外安装较新版本或在线版本。这将导致系统损坏,我不承担任何责任!
解决方案
OP 现在必须建立一个改变根监狱安装 ARM 交叉编译器,因为 GLIBC 版本无法并行安装。也可以看看维基百科 - Chroot。为此,请按照下列步骤操作:
- 为changeroot创建目录:
mkdir -pv $HOME/newroot
- 创建覆盖以重定向 RPM 包以安装到 chroot: 中
export ROOT=$HOME/newroot && echo $ROOT
。如果您好奇,请参阅步骤 4。- 请回显新变量,因为这很快就会变得非常重要。
- 下载changeroot推荐的rpm包(这些是包名称):
cd $ROOT && mkdir -v download && cd download
- 设置
- 文件系统
- 基础系统
- LD配置
- glibc <--请注意上面的警告,否则您将毫无结果地完成这项工作。
- 临时表
- 术语帽
- 恩诅咒
- 信息
- 文件工具
- bash && libtermcap
- 数据库管理系统
- tcsh
- 珀尔
- 检查配置
- 文本实用程序
- 破解库
- racklib-dicts
- 普世数据库
- 油嘴滑舌
- 呆呆地
- pam--nodeps
- 影子工具
- 俚语
- util-linux --nodeps
- sh-utils
- 桀骜
- sed
- 压缩包2
- 波普特
- 兹库
- 转速
- 您的交叉编译工具链及其依赖项
- 使用以下命令安装上面的列表
rpm -i --root=$ROOT packagename
注意--root
参数。这会覆盖 RPM 的默认安装行为。请注意列表中带有附加功能的软件包,例如 bash && libtermcap。请按照列表中的说明运行 rpm -i 命令,包括参数--root
。在上面的示例中,libtermcap 安装在与 bash 相同的目录中。 - 最后,有人可能会说
chroot $ROOT && export PS1="(chroot) $PS1"
。