错误/lib/x86_64-linux-gnu/libc.so.6:找不到版本“GLIBC_2.34”

问题描述 投票:0回答:5

首先,我用谷歌搜索了很多,但没有找到与我的情况相关的东西,我有一个 ELF 可执行文件,我试图在我的 Ubuntu WSL 中运行它,我已经更改了权限(

chmod +x file
),当我运行一下,出现这个错误

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by myFile)

当我使用 ld 命令时,这会出现在我面前

myFile(.eh_frame); no .eh_frame_hdr table will be created

当我尝试升级 GLIBC 时,它说它是最新的

Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.7).
libc6 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 215 not upgraded.

然后我尝试从 https://packages.ubuntu.com/impish/amd64/libc6/download手动安装 deb 文件,但这对我来说是这样的:

dpkg: regarding libc6_2.34-0ubuntu3.2_amd64.deb containing libc6:amd64:
 libc6:amd64 breaks fakeroot (<< 1.25.3-1.1ubuntu2~)
  fakeroot (version 1.24-1) is present and installed.

dpkg: error processing archive libc6_2.34-0ubuntu3.2_amd64.deb (--install):
 installing libc6:amd64 would break fakeroot, and
 deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
 libc6_2.34-0ubuntu3.2_amd64.deb
linux ubuntu windows-subsystem-for-linux elf glibc
5个回答
8
投票

免责声明:我不是 Linux 专业人士,只是找到了解决我自己的 glibc 未找到错误消息问题的方法:

也许您无法使用该二进制文件,因为它是用 gcc-11 编译的,而您的 Linux 发行版的 gcc 版本和版本仅为 gcc-9,因此仅提供 glibc_2.31 (我猜)。 您可以尝试自己从源代码编译该程序。我必须使用新的 stockfish 版本 15 来执行此操作,该版本也使用更新的 glibc_2.32/2.33/2.34,而我的 linux-mint 不提供该功能。 但从源代码编译就像一个魅力。也许这是您的一个选择。


8
投票

执行

make
时,我遇到了 buildroot-2022.11 的错误。

Ubuntu 20.04 - 添加了此存储库,如链接中所述

sudo apt update
sudo apt install libc6

它自动为我安装了2.35。


2
投票

我也有类似的情况

我将执行文件从centos VM1复制到另一个centos VM2,然后我得到了同样的问题,我只是将源代码复制到VM2,然后重新编译它,然后问题就解决了。

我有一个makefile和一个shell脚本来编译它,所以编译过程很简单,更新glibc可能会导致其他问题并且更复杂,我是菜鸡,希望能帮助你


0
投票

我遇到了同样的问题,这是关于环境变量LD_LIBRARY_PATH覆盖的问题。尝试检查这个解决方案


0
投票

就我而言,将

FROM go:1.21
替换为
FROM go:1.21.0-bullseye
尝试在那里修补

© www.soinside.com 2019 - 2024. All rights reserved.