C语言 /lib64/libc.so.6:未找到版本“GLIBC_2.14”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/42433530/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-02 10:37:05  来源:igfitidea点击:

/lib64/libc.so.6: version `GLIBC_2.14' not found

cglibc

提问by Rishi

I am facing the following error regarding glibc.

我面临以下有关 glibc 的错误。

./simulator: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./simulator)

I have gone through several documents regarding this error and I understand that the program simulatorwas compiled with higher version of glibcand the machine it is running on has a lower version. simulatorwas compiled with glibc 2.19on Ubuntu 14.04 machine. So why am I getting GLIBC_2.14error ? Shouldn't it be 2.19 error ?

我已经浏览了几个关于此错误的文档,我知道该程序simulator是用更高版本编译的,glibc并且它运行的机器版本较低。 simulatorglibc 2.19在 Ubuntu 14.04 机器上编译的。那么为什么我会GLIBC_2.14出错?不应该是 2.19 错误吗?

回答by Employed Russian

So why am I getting GLIBC_2.14 error?

那么为什么我会收到 GLIBC_2.14 错误?

Because your program depends on a symbol with that version, and you are running it on a system which doesn't provide it.

因为您的程序依赖于具有该版本的符号,并且您在不提供它的系统上运行它。

Shouldn't it be 2.19 error?

不应该是 2.19 错误吗?

No.

不。

When a new symbol is introduced, it gets a version assigned to it. Usually that version is the not yet releasedglibc version, i.e. if the current released version is 2.13, the new symbol gets version 2.14 assigned to it.

当引入一个新符号时,它会获得一个分配给它的版本。通常该版本是尚未发布的glibc 版本,即如果当前发布的版本是 2.13,则新符号会分配给它的 2.14 版本。

That version stayswith this symbol (unless a new and incompatible version of the same symbol is introduced later).

该版本与此符号保持一致(除非稍后引入同一符号的新的且不兼容的版本)。

The x86_64GLIBC-2.19has the following versioned symbols:

x86_64GLIBC-2.19具有以下版本的符号:

$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep ' g ' | head
0000000000078110 g    DF .text  0000000000000124  GLIBC_2.2.5 putwchar
0000000000096a70 g    DF .text  0000000000000020  GLIBC_2.2.5 __strspn_c1
000000000010a2b0 g    DF .text  0000000000000010  GLIBC_2.4   __gethostname_chk
0000000000096a90 g    DF .text  000000000000001a  GLIBC_2.2.5 __strspn_c2
0000000000110570 g    DF .text  00000000000000a5  GLIBC_2.2.5 setrpcent
00000000000a7ba0 g    DF .text  000000000000000a  GLIBC_2.2.5 __wcstod_l
0000000000096ab0 g    DF .text  0000000000000022  GLIBC_2.2.5 __strspn_c3
00000000000fa950 g    DF .text  0000000000000021  GLIBC_2.3.2 epoll_create
000000000010a2c0 g    DF .text  0000000000000010  GLIBC_2.4   __getdomainname_chk
00000000000fab60 g    DF .text  0000000000000021  GLIBC_2.2.5 klogctl
....

That is, if I link a program that calls putwchar, I will need at minimumversion 2.2.5, but if my program also calls epoll_create, then I will need a minimum version of 2.3.2.

也就是说,如果我链接一个调用 的程序putwchar,我将需要最低版本2.2.5,但如果我的程序也调用epoll_create,那么我将需要2.3.2.

Your program calls some symbol with version GLIBC_2.14, most likely this one:

您的程序调用一些带有 version 的符号GLIBC_2.14,很可能是这个:

0000000000091620 g   iD  .text  000000000000003d  GLIBC_2.14  memcpy

Your program is known to notcall any of the symbols below (or you would have gotten a different required version):

已知您的程序不会调用以下任何符号(否则您将获得不同的所需版本):

$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | egrep 'GLIBC_2.1[5-9]'
000000000010ab30 g    DF .text  0000000000000014  GLIBC_2.16  __ppoll_chk
00000000001087d0  w   DF .text  000000000000003e  GLIBC_2.17  clock_getcpuclockid
000000000010aaf0 g    DF .text  0000000000000017  GLIBC_2.15  __fdelt_warn
000000000010aaf0 g    DF .text  0000000000000017  GLIBC_2.15  __fdelt_chk
000000000003c6b0 g    DF .text  00000000000000fc  GLIBC_2.18  __cxa_thread_atexit_impl
00000000000fb070 g    DF .text  0000000000000024  GLIBC_2.15  process_vm_writev
00000000000bd420 g    DF .text  00000000000001ba  GLIBC_2.15  scandirat
00000000000af970 g    DF .text  0000000000000019  GLIBC_2.16  c16rtomb
00000000001088f0  w   DF .text  0000000000000090  GLIBC_2.17  clock_nanosleep
00000000000af6e0 g    DF .text  0000000000000282  GLIBC_2.16  mbrtoc16
00000000000a3c70  w   DF .text  0000000000000230  GLIBC_2.16  mbrtoc32
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.15  GLIBC_2.15
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.16  GLIBC_2.16
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.17  GLIBC_2.17
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.18  GLIBC_2.18
00000000000b9f40 g    DF .text  0000000000000042  GLIBC_2.16  timespec_get
0000000000083120  w   DF .text  0000000000000009  GLIBC_2.16  aligned_alloc
0000000000108810  w   DF .text  0000000000000025  GLIBC_2.17  clock_getres
0000000000108880  w   DF .text  0000000000000064  GLIBC_2.17  clock_settime
00000000000f8240  w   DF .text  0000000000000068  GLIBC_2.16  getauxval
00000000000e44f0 g    DF .text  0000000000000015  GLIBC_2.15  posix_spawn
0000000000108840  w   DF .text  000000000000003b  GLIBC_2.17  clock_gettime
00000000000a3ea0  w   DF .text  00000000000001ea  GLIBC_2.16  c32rtomb
000000000003c0b0  w   DF .text  000000000000001b  GLIBC_2.17  secure_getenv
000000000010ab10 g    DF .text  0000000000000014  GLIBC_2.16  __poll_chk
00000000000f8240 g    DF .text  0000000000000068  GLIBC_2.16  __getauxval
00000000000fb040 g    DF .text  0000000000000024  GLIBC_2.15  process_vm_readv
00000000000bd420  w   DF .text  00000000000001ba  GLIBC_2.15  scandirat64
00000000000e4510 g    DF .text  0000000000000015  GLIBC_2.15  posix_spawnp

回答by Laurent G

What

什么

ldd --verbose simulator

gives ?

给 ?

I'd say GLIBC2.14 is the minimum required.

我想说 GLIBC2.14 是最低要求。

What is the version of libc.so on your system ?

您系统上的 libc.so 版本是多少?

回答by JafetVoltron

If all else fails, just download an earlier version of BLAST. It appears that these errors occur with newer versions.

如果一切都失败了,只需下载早期版本的 BLAST。这些错误似乎出现在较新的版本中。

Installing ncbi-blast-2.8.1, instead of ncbi-blast-2.9.0, fixed this problem for me.

安装ncbi-blast-2.8.1,而不是ncbi-blast-2.9.0,为我解决了这个问题。

回答by Piyush Sonigra

I was getting the same kind of error in Debian when was generating build using pyinstaller in ubuntu. I resolved this error by generating build in centos7. Build working fine.

在 ubuntu 中使用 pyinstaller 生成构建时,我在 Debian 中遇到了同样的错误。我通过在 centos7 中生成 build 解决了这个错误。构建工作正常。