Probleme de librairie lors d'une execution

Résolu
Bonjour,
J'ai un problème d'execution que je ne comprends pas. J'essaye d'executer un programme de fortran 77 (je n'ai que l'executable et non pas le fichier source), il me renvoit un problème de librairie (libg2c.so.0). Voila ce qu'il m'affiche:
"./ferrosimul.exe: error while loading shared libraries: libg2c.so.0: cannot open shared object file: No such file or directory"
J'ai vérifié avec "ldd ", il m'affiche "not found". Il m'affiche:
ldd ferrosimul.exe
linux-gate.so.1 => (0xffffe000)
libg2c.so.0 => not found
libm.so.6 => /lib/libm.so.6 (0x43ddb000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x44161000)
libc.so.6 => /lib/libc.so.6 (0x43c7d000)
/lib/ld-linux.so.2 (0x43c60000)

Il faut se rapeller que je n'ai pas le fichier code (je ne sais pas si c'est important), mais juste le .exe .

Pourtant j'essaye avec un autre executable, cela marche correctement et il n'y a pas de problème de librairie, il trouve bien libg2c.so.0 (toujours avec ldd). Les deux executables sont dans le meme repértoire pourtant.
ldd ferro22.exe
libg2c.so.0 => /usr/lib64/libg2c.so.0 (0x00002aaaaaac8000)
libm.so.6 => /lib64/libm.so.6 (0x0000003f85800000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f92e00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003f85400000)
/lib64/ld-linux-x86-64.so.2 (0x0000003f84400000)

J'ai vérifié mes paquetages, j'ai bien compat-libf2c.
Est ce que quelqu'un pourrait me venir en aide?
Je vous remercie.
Milou

PS: Config Fedora 6 *86_64
Configuration: Linux Fedora
Firefox 1.5.0.7

21 réponses

  1. J'ai assez tes démarches mais ca ne marche toujours pas quand je veux l'"executer. Voila ce qu'il m'affiche:
    -name libg2c.so.0 -ls
    find: /tmp/gconfd-root: Permission non accordée

    9899786 0 lrwxrwxrwx 1 root root 15 déc 23 13:56 /usr/lib64/libg2c.so.0 -> libg2c.so.0.0.0

    find: /usr/libexec/utempter: Permission non accordée
    find: /var/tux: Permission non accordée
    find: /var/lib/dhcpv6: Permission non accordée
    find: /var/lib/nfs/statd: Permission non accordée

    .... et tout un tas de fichier avec permission non accordée

    Mais tu as raison je crois que c'est un problème de librairie, libg2c.so.0 est bien dans /lib64/mais pas dans /lib/. (j'ai vérifié), j'ai essayé de faire un lien comme expliqué sur un site mais ca ne marche toujours pas: http://dis2001.bo.infn.it/alice/alice-doc/mll-doc/ali-inst/node40.html. Si tu veux y jeter un oeil... mais je ne sais toujours pas pourquoi ca ne marche pas.
    Merci
    1. C'est bon j'ai trouvé! ce n'est pas gcc-g77 comme package mais libf2c.i386 c'etait bien une histoire de 32 bit et 64 bit avec les packages!
      Je te remercie en tout cas de ton aide apportée.
      Milou
      1. Le lien existe mais lorsque je veux installer le nouveau package .i386, il me dit qu'il est deja installé...... je ne sais pas quoi faire la..
        1. Que dois je faire donc? ca ne marche toujours pas

          [emile@localhost Desktop]$ ./ferrosimul.exe
          ./ferrosimul.exe: error while loading shared libraries: libg2c.so.0: wrong ELF class: ELFCLASS64
          1. Voila la reponse:

            [emile@localhost Desktop]$ yum provides libg2c
            Loading "installonlyn" plugin
            Setting up repositories
            Reading repository metadata in from local files
            Importing additional filelist information
            Error: Caching enabled but no local cache of //var/cache/yum/core/filelists.xml.gz from core
            [emile@localhost Desktop]$ yum install compat-gcc-34-g77.i386
            Loading "installonlyn" plugin
            You need to be root to perform this command.

            et g77.i386 c'est pas pour les pentium 4, moi je suis athlon normalement c'est 86-46 nan?
            j'ai deja ce package installé: compat-gcc-34-g77.3.4.6-4.*86-64
            1. Contributeur
              yum provides libg2c
              pour voir ce qu'il répond et
              yum install compat-gcc-34-g77.i386

              DESCRIPTION
              yum is an interactive, automated update program which can be used for maintaining systems using rpm
              1. Contributeur
                il doit manquer un package : http://o-info.bioxray.dk/pipermail/o-info/2007-June/008274.html
                I confirmed your observation.
                "yum provides libg2c" suggests "compat-gcc-34-g77" provides it.
                "yum install compat-gcc-34-g77.i386" fixed it
                1. Voila ce qu'il me mets:

                  [emile@localhost Desktop]$ find /lib /usr/lib* -name libg2c* -ls
                  23756981 0 lrwxrwxrwx 1 root root 20 déc 23 16:03 /lib/libg2c.so -> /usr/lib/libg2c.so.0
                  9899906 0 lrwxrwxrwx 1 root root 26 déc 23 15:44 /usr/lib/libg2c.so -> /usr/lib64/libg2c.so.0.0.0
                  11370609 0 lrwxrwxrwx 1 root root 27 déc 23 16:39 /usr/lib/gcc/x86_64-redhat-linux/3.4.6/32/libg2c.so -> ../../../../libg2c.so.0.0.0
                  11370608 348 -rw-r--r-- 1 root root 346078 aoû 23 2006 /usr/lib/gcc/x86_64-redhat-linux/3.4.6/32/libg2c.a
                  11370613 0 lrwxrwxrwx 1 root root 33 déc 23 16:39 /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libg2c.so -> ../../../../lib64/libg2c.so.0.0.0
                  11370612 568 -rw-r--r-- 1 root root 572476 aoû 23 2006 /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libg2c.a
                  9899908 0 lrwxrwxrwx 1 root root 22 déc 23 16:30 /usr/lib/libg2c.so.0 -> /usr/lib64/libg2c.so.0
                  9899873 128 -rwxr-xr-x 1 root root 120808 aoû 23 2006 /usr/lib64/libg2c.so.0.0.0
                  9899786 0 lrwxrwxrwx 1 root root 15 déc 23 13:56 /usr/lib64/libg2c.so.0 -> libg2c.so.0.0.0
                  find: /usr/libexec/utempter: Permission non accordée
                  [emile@localhost Desktop]$

                  Que faut-il faire maintenant?
                  1. Contributeur
                    oui, c'est logique, 32bits != 64bits
                    et find /lib /usr/lib* -name libg2c* -ls
                    1. J'ai essayé cela , mais l'erreur affiché a changé, il me parle de classe ELF... (?!), voila ce qu'il m'affiche:

                      [emile@localhost Desktop]$ ls -l /usr/lib64/libg2c.so* /usr/lib/libg2c.so*
                      lrwxrwxrwx 1 root root 15 déc 23 13:56 /usr/lib64/libg2c.so.0 -> libg2c.so.0.0.0
                      -rwxr-xr-x 1 root root 120808 aoû 23 2006 /usr/lib64/libg2c.so.0.0.0
                      lrwxrwxrwx 1 root root 26 déc 23 15:44 /usr/lib/libg2c.so -> /usr/lib64/libg2c.so.0.0.0

                      [emile@localhost Desktop]$ su
                      Mot de passe :
                      [root@localhost Desktop]# ln -s /usr/lib64/libg2c.so.0 /usr/lib/libg2c.so.0
                      [root@localhost Desktop]# exit
                      exit
                      [emile@localhost Desktop]$ ./ferrosimul.exe
                      ./ferrosimul.exe: error while loading shared libraries: libg2c.so.0: wrong ELF class: ELFCLASS64
                      [emile@localhost Desktop]$
                      1. Contributeur
                        et
                        ls -l /usr/lib64/libg2c.so* /usr/lib/libg2c.so*

                        le lien me semble faux, plutôt ca:
                        ln -s /usr/lib64/libg2c.so.0 /usr/lib/libg2c.so.0
                        1. J'avais oublié une ligne de commande, mais ca ne change rien pour l'instant....

                          [emile@localhost Desktop]$ find /lib /usr/lib -name libg2c.so.0 -ls
                          [emile@localhost Desktop]$ ll /usr/lib/*g2c*
                          lrwxrwxrwx 1 root root 26 déc 23 15:44 /usr/lib/libg2c.so -> /usr/lib64/libg2c.so.0.0.0
                          [emile@localhost Desktop]$
                          1. Il m'affiche rien du tout!

                            [emile@localhost Desktop]$ find /lib /usr/lib -name libg2c.so.0 -ls
                            [emile@localhost Desktop]$
                            1. Contributeur
                              essayer de restreindre la recherche :
                              find /lib /usr/lib -name libg2c.so.0 -ls

                              que répond : ll /usr/lib/*g2c*
                              1. Contributeur
                                echo $LD_LIBRARY_PATH
                                il faut trouver libg2c.so.0
                                find / -name libg2c.so.0 -ls

                                essayer:
                                export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:nom_du répertoire
                                et exécuter le premier prog.
                                1. A vrai dire je débute et je ne sais pas trop. Comment est ce que je peux savoir?
                                  • 1
                                  • 2