/lib64/libc.so.6: version ‘GLIBC_2.14’ introuvable

Je suis confronté à l’erreur suivante concernant glibc.

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

J’ai parcouru plusieurs documents concernant cette erreur et je crois comprendre que le simulator programme a été compilé avec la version supérieure de glibc et que la machine sur laquelle il tourne est dotée d’une version inférieure. simulator été compilé avec la glibc 2.19 sur une machine Ubuntu 14.04. Alors, pourquoi je reçois erreur GLIBC_2.14 ? Cela ne devrait-il pas être une erreur 2.19?

Alors, pourquoi je reçois erreur GLIBC_2.14?

Parce que votre programme dépend d’un symbole avec cette version et que vous l’exécutez sur un système qui ne le fournit pas.

Cela ne devrait-il pas être une erreur 2.19?

Non.

Lorsqu’un nouveau symbole est introduit, il se voit atsortingbuer une version. Généralement, cette version est la version de la glibc non encore publiée. En d’autres termes, si la version actuelle est 2.13, le nouveau symbole se voit atsortingbuer la version 2.14.

Cette version rest avec ce symbole (sauf si une nouvelle version incompatible du même symbole est introduite ultérieurement).

GLIBC-2.19 x86_64 a les symboles mis à jour suivants:

 $ 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 .... 

Autrement dit, si je lie un programme qui appelle putwchar , il me faut au minimum la version 2.2.5 , mais si mon programme appelle également epoll_create , il me faudra alors une version minimale de 2.3.2 .

Votre programme appelle un symbole avec la version GLIBC_2.14 , probablement celle-ci:

 0000000000091620 g iD .text 000000000000003d GLIBC_2.14 memcpy 

Votre programme est connu pour n’appeler aucun des symboles ci-dessous (sinon vous auriez une version requirejse différente):

 $ 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 

Quoi

 ldd --verbose simulator 

donne?

Je dirais que GLIBC2.14 est le minimum requirejs.

Quelle est la version de libc.so sur votre système?