Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
/lib64/libc.so.6:version`GLIBC_2.14';找不到_C_Glibc - Fatal编程技术网

/lib64/libc.so.6:version`GLIBC_2.14';找不到

/lib64/libc.so.6:version`GLIBC_2.14';找不到,c,glibc,C,Glibc,关于glibc,我面临以下错误 ./simulator: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./simulator) 我已经阅读了有关此错误的多个文档,并且我了解到程序模拟器是使用较高版本的glibc编译的,并且它运行的机器的版本较低。 simulator是在Ubuntu 14.04机器上用glibc 2.19编译的。那么为什么我会出现GLIBC_2.14错误?这不是2.19错误吗?什么 ldd --ve

关于glibc,我面临以下错误

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

我已经阅读了有关此错误的多个文档,并且我了解到程序
模拟器
是使用较高版本的
glibc
编译的,并且它运行的机器的版本较低。
simulator
是在Ubuntu 14.04机器上用
glibc 2.19
编译的。那么为什么我会出现
GLIBC_2.14
错误?这不是2.19错误吗?

什么

ldd --verbose simulator

我认为GLIBC2.14是最低要求

您的系统上libc.so的版本是什么

那为什么我会犯GLIBC_2.14错误呢

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

它不应该是2.19错误吗

没有

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

该版本保留此符号(除非稍后引入同一符号的新版本和不兼容版本)

x86_64
GLIBC-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
....
也就是说,如果我链接一个调用
putwchar
的程序,我将需要最低版本的
2.2.5
,但是如果我的程序也调用
epoll\u create
,那么我将需要最低版本的
2.3.2

您的程序使用版本
GLIBC_2.14
调用某个符号,很可能是:

0000000000091620 g   iD  .text  000000000000003d  GLIBC_2.14  memcpy
已知您的程序不调用以下任何符号(否则您将获得不同的所需版本):


如果所有这些都失败了,只需下载BLAST的早期版本。这些错误似乎发生在较新的版本中


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

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

但是您已经回答了这个问题-您需要安装一个新的glibc来运行该二进制文件。我的问题是为什么会出现GLIBC2.14错误?模拟器是用2.19编译的。它不是应该是2.19错误吗?“并且它运行的机器有一个较低的版本”。也许您可以用另一种方式描述您的问题,以防万一,检查编译该问题的主机上是否存在许多glib,然后检查使用了哪个glib。第二,您可以检查所用libc的源代码,该版本是硬编码的,是否遵循包版本。在Ubuntu 14.04(编译机器)上,它显示ld-linux-x86-64.so.2(GLIBC_2.3)=>/lib64/ld-linux-x86-64.so.2 libc.so.6(GLIBC_2.3.4)=>/lib/x86_64-linux-gnu/libc.so.6 libc.so.6(GLIBC_2.14)=>/lib/x86_64-linux-gnu/libc.so.6 libc.so.6(GLIBC_2.3)=>/lib/x86_64-linux-gnu/libc.so.6 libc.so.6(GLIBC_2.4)=>/lib/x86_64-linux-gnu/libc.so.6 libc.so.6(GLIBC_2.3.2.2)=>/libc/x86_64-linux-gnu/libc.so.6 libc.so.6(glibu 2.2.2.5)=>/libc.14 GLIBC-GLIBC.14,GLIBC)是你认为最低要求的@Laurentldd——版本是2.19。为什么它会与GLIBC2.14链接?我想这个问题证实了这一点that@dmiGLIBC_2.14是一个符号版本。glibc的作者更改了glibc 2.14中某些函数的ABI,这些函数在当时用版本号进行了注释。二进制文件需要其中一些函数。它不需要glibc2.19,因为您的二进制文件不需要任何特定于glibc2.19的特性。但它需要glibc2.14中添加的功能
$ 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