2 votes

Comment réparer "/lib/tls/libc.so.6: version `GLIBC_2.4' introuvable" ?

J'ai compilé un binaire et je l'ai copié sur une autre machine pour l'exécuter. Mais je reçois l'erreur ci-dessus. Sur la deuxième machine, je ne peux pas installer de nouvelles bibliothèques. J'ai essayé de mettre le libc de la première machine dans le répertoire du binaire sur la deuxième machine, mais le linker (comme je l'ai trouvé en utilisant ldd) charge toujours à partir du chemin standard /lib/tls/libc.so.6). Veuillez me faire savoir un correctif avec le moins de changements possibles pour cela.

Mise à jour :

Commande utilisée pour la compilation/le linking:

g++ -O2 -DNDEBUG -o CountStrings -I../../../../../tbb/tbb20_20080408oss_src/include/ ../src/CountStrings.cpp -L../../../../../tbb/tbb20_20080408oss_src/build/linux_ia32_gcc_cc4.3.2_libc2.8.90_kernel2.6.27_release/ -ltbb

libtbb.so a une dépendance sur libc.so.6

3voto

Samoht Points 141

En fait, le moyen le plus simple de résoudre le problème est de mettre à jour votre version du système d'exploitation.

Par exemple, Java 1.7 ne fonctionne pas sur RedHat 4 mais fonctionne bien sur RedHat 5.

1voto

AngryWhenHungry Points 343

Essayez d'exporter LD_LIBRARY_PATH= pour votre processus
par exemple $ LD_LIBRARY_PATH=/home/kumar ./a.out
cherchera les bibilothèques dans /home/kumar/ avant tout autre endroit

0voto

tvanfosson Points 268301

Avez-vous vérifié s'il existe une version statique de la bibliothèque sur la machine de compilation? Si c'est le cas, vous pourriez la lier explicitement en utilisant /lib/tls/libc.a au lieu de -L/lib/tls -lc (ou tout autre dialecte que vous utilisez).

0voto

lothar Points 11904

Je ne suis pas sûr des effets secondaires (néfastes) que peut avoir l'utilisation d'une autre libc que celle fournie par le système, mais vous pouvez essayer de forcer l'utilisation de votre copie spéciale de libc avec LD_PRELOAD

LD_PRELOAD=

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X