在缺少高版本glibc的机器上通过修改ELF引用使之成功运行测试实例

本文档详细记录了如何在低版本glibc环境下,通过修改ELF文件的动态符号信息,使得依赖高版本glibc的程序能够成功运行。首先分析了程序报错的原因,然后使用readelf等工具检查和修改ELF文件,成功将依赖的GLIBC_2.14版本替换为GLIBC_2.2.5,从而解决了运行时错误。
摘要由CSDN通过智能技术生成

问题分析:

本篇文档是在《更改引用高版本glibc的程序到引用低版本的glibc》之后的补充文档,如果以后遇到相同问题,首先看我之前原创的《更改文件引用的高版本glibc到低版本glibc》这篇,然后再来看本篇。

本篇文档将详细记录一个在低版本glibc机器上运行由a.cpp文件编译之后的a文件,由最初的缺少GLIBC_2.14错误提示到最终成功运行的一系列步骤。

1我们在45.154机器上查看GLIBC版本,如下:

这是a.cpp文件:

使用g++ a.cpp命令编译之后生成了a.out文件,我们在45.154机器上,也就是在本机运行a.out文件,结果如下:

可以发现a.out文件可以成功运行。

 

2现在我们将a.out文件传输到45.152机器上,这个机器上的GLIBC版本如下:

可以发现该机器上的GLIBC版本比较低,我们通过scp命令将a.out文件从45.154上传输到45.152上,具体命令如下:

执行之后,输入命令,即可成功传输到45.1

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Qt 5.12.9 mpsoc上运行缺少glibc_2.29的原因可能是系统中安装的glibc版本过低。glibcGNU C Library的缩写,是Linux系统中的核心C库,提供了对操作系统底层功能的访问。 为了解决这个问题,可以考虑以下几种解决方案: 1. 升级glibc:尝试在系统中升级glibc到2.29或更版本。可以通过更新操作系统或手动编译安装最新版本glibc来完成。 2. 兼容库:如果升级glibc不可行或不推荐,可以尝试使用兼容库来解决问题。可以搜索并下载适用于Qt 5.12.9 mpsoc和当前系统glibc版本的兼容库,然后将其配置为Qt项目的依赖项。 3. 降级Qt版本:如果以上两种解决方案都不可行,可以考虑降级Qt版本至一个与当前系统glibc版本兼容的版本。首先需要卸载当前安装的Qt 5.12.9 mpsoc,然后安装一个较低版本的Qt,其所需的glibc版本应与当前系统中存在的版本匹配。 需要注意的是,以上解决方案中的每一种都有其特定的风险和限制。在进行任何更改之前,强烈建议备份系统和相关数据,并仔细评估可能导致的影响。此外,最好咨询相关领域的专业人士或Qt社区的支持,以获取准确和可靠的建议。 ### 回答2: 在运行Qt5.12.9 MPSOC时出现缺少"glibc_2.29"的问题。这种情况通常是由于在你的系统中缺少所需版本GLIBC库引起的。GLIBC是一个重要的库,它提供了许多标准C库函数的实现。 要解决这个问题,可以采取以下几个步骤: 1. 检查当前系统中已安装的GLIBC版本。可以在终端中输入命令`ldd --version`来查看当前GLIBC版本。如果显示的版本较低(低于2.29),则需要升级GLIBC。 2. 升级GLIBC。通常,升级GLIBC可能是一个相对复杂和冒险的过程,因为它涉及到操作系统的核心组件。因此,建议谨慎操作,并确保备份你的重要数据。 3. 安装兼容的Qt版本。而不是升级GLIBC,另一种解决方法是安装与你的系统兼容的Qt版本。可以查找和下载与已安装GLIBC版本兼容的Qt5.12.9版本,然后重新编译和运行你的程序。 4. 更新操作系统。将操作系统升级到支持所需GLIBC版本的最新版本可能是更简单和安全的解决方法。在系统升级之前,建议备份重要数据和设置,以防意外发生。 需要注意的是,升级GLIBC或操作系统可能会涉及到一些风险和复杂性,因此在执行此类操作之前,请确保了解相关知识或咨询专业人士的建议。 ### 回答3: 在Qt5.12.9 MPSOC上运行缺少glibc_2.29可能是因为您的操作系统中的glibc版本太旧,无法满足Qt5.12.9对于glibc_2.29的依赖。glibcGNU C Library)是一个重要的C语言运行时库,它提供了使用C语言编写的应用程序与操作系统之间进行交互的接口。 要解决这个问题,您有以下几个选择: 1. 升级您的操作系统:升级您的操作系统到支持glibc_2.29版本版本。您可以查找操作系统的官方文档,了解如何升级glibc版本的方法。 2. 降低Qt版本:如果您不想升级操作系统,可以尝试降低Qt的版本,以适应您当前操作系统所支持的glibc版本。您可以在Qt的官方网站上获取旧版本的Qt,然后安装并尝试在MPSOC上运行。 3. 自行编译:如果您具备一定的编程和系统知识,您也可以尝试自行编译glibc_2.29版本,并将其安装到您的操作系统中。这需要一些复杂的步骤,包括下载glibc源代码、配置编译选项、编译和安装等。 无论您选择哪种方法,确保在进行任何操作之前备份您的重要数据。另外,请注意,更改操作系统或修改底层库的操作可能会带来一些潜在的风险和不稳定性,因此请小心操作,并确保使用合适的解决方案以解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值