Forum Programmation.c++ ACML , libgfortran , ubuntu x86_64

Posté par .
Tags : aucun
0
5
fév.
2008
Bonjour , je suis passer il y a peu de temps sur 64bits.
Je code une librairie qui a besoin d'acml, comme on me la expliquer sur un autre post après avoir installé acml (le 4.0.1) je met le chemin de la lib dans le /etc/ld.so.conf et je fais un sudo ldconfig.
Coté acml tout va presque bien , je m'explique : j'ai pris la version compilée avec gfortran pour 64bit (...normal..), donc pour ma librairie je link acml et gfortran (-lacml_mp -lgfortran), mais gcc me retourne /usr/bin/ld: cannot find -lgfortran

lorsque je fait un locate libgfortran j'ai : ~$ locate libgfortran
/var/cache/apt/archives/libgfortran1_4.1.2-16ubuntu2_amd64.deb
/var/cache/apt/archives/libgfortran2_4.2.1-5ubuntu4_amd64.deb
/var/lib/dpkg/info/libgfortran1.list
/var/lib/dpkg/info/libgfortran2.postinst
/var/lib/dpkg/info/libgfortran2.md5sums
/var/lib/dpkg/info/libgfortran1.md5sums
/var/lib/dpkg/info/libgfortran2.list
/var/lib/dpkg/info/libgfortran1.shlibs
/var/lib/dpkg/info/libgfortran2.shlibs
/var/lib/dpkg/info/libgfortran2.postrm
/var/lib/dpkg/info/libgfortran1.postrm
/var/lib/dpkg/info/libgfortran1.postinst
/home/vieurou/.kde/share/apps/RecentDocuments/libgfortran1_4.1.2-16ubuntu2_amd64.deb.desktop
/usr/lib/libgfortran.so.1.0.0
/usr/lib/libgfortran.so.2
/usr/lib/libgfortran.so.2.0.0
/usr/lib/gcc/x86_64-linux-gnu/4.2/libgfortranbegin.a
/usr/lib/gcc/x86_64-linux-gnu/4.2/32/libgfortranbegin.a
/usr/lib/gcc/x86_64-linux-gnu/4.2/32/libgfortran.a
/usr/lib/gcc/x86_64-linux-gnu/4.2/32/libgfortran.so
/usr/lib/gcc/x86_64-linux-gnu/4.2/libgfortran.a
/usr/lib/gcc/x86_64-linux-gnu/4.2/libgfortran.so
/usr/lib/libgfortran.so.1
/usr/share/doc/libgfortran2
/usr/share/doc/libgfortran1
/usr/lib32/libgfortran.so.2
/usr/lib32/libgfortran.so.2.0.0
et mon ld.so.conf : include /etc/ld.so.conf.d/*.conf
/usr/local/lib & /opt/acml4.0.1/gfortran64_mp_int64/lib/
/usr/lib32/
/usr/lib/


si quelqu'un savait me dire pourquoi j'ai ce message d'erreur ,
merci d'avance
  • # ldconfig -v

    Posté par . Évalué à 1.

    avec la commande ldconfig -v tes libs gfortran sont bien listées?
    • [^] # Re: ldconfig -v

      Posté par . Évalué à 1.

      salut ,
      ~$ sudo ldconfig -v | grep libgfortran
      /sbin/ldconfig.real: Ne peut évaluer par stat /usr/local/lib & /opt/acml4.0.1/gfortran64_mp_int64/lib: Aucun fichier ou répertoire de ce type
      /sbin/ldconfig.real: Chemin « /usr/lib » donné plus d'une fois
      /sbin/ldconfig.real: Chemin « /usr/lib32 » donné plus d'une fois
      libgfortran.so.2 -> libgfortran.so.2.0.0
      libgfortran.so.2 -> libgfortran.so.2.0.0
      libgfortran.so.1 -> libgfortran.so.1.0.0

      du coup j'ai modifié ld.so.conf
      include /etc/ld.so.conf.d/*.conf
      /usr/local/lib
      /opt/acml4.0.1/gfortran64_mp_int64/lib/
      /usr/lib32/
      /usr/lib/


      ~$ sudo ldconfig
      ~$ sudo ldconfig -v | grep gfortran
      /sbin/ldconfig.real: Chemin « /usr/local/lib » donné plus d'une fois
      /sbin/ldconfig.real: Chemin « /usr/lib » donné plus d'une fois
      /sbin/ldconfig.real: Chemin « /usr/lib32 » donné plus d'une fois
      /opt/acml4.0.1/gfortran64_mp_int64/lib:
      libgfortran.so.2 -> libgfortran.so.2.0.0
      libgfortran.so.2 -> libgfortran.so.2.0.0
      libgfortran.so.1 -> libgfortran.so.1.0.0


      donc normalement ça devrait être bon ?
      • [^] # Re: ldconfig -v

        Posté par . Évalué à 1.

        En tout cas c'est bien mieux en effet
        Mais si tu pose la question c'est que tu as essayé et que ça marche toujours pas?
        • [^] # Re: ldconfig -v

          Posté par . Évalué à 1.

          exact
          g++ -o"testlib" ./Source/testLib.o ./Source/test.o -lgfortran -lacml_mp -lGLEW -lglut
          /usr/bin/ld: cannot find -lgfortran
          collect2: ld a retourné 1 code d'état d'exécution
          make: *** [testlib] Erreur 1
          make: La cible « all » n'a pas pu être refabriquée à cause d'erreurs.


          que faire ???
          • [^] # autre precision

            Posté par . Évalué à 1.

            ~$ locate gfortran | grep lib | grep .so
            /opt/acml3.6.1/gfortran64/lib/libacml.so
            /opt/acml3.6.1/gfortran64/lib/libacml_mv.so
            /opt/acml3.6.1/gfortran64_mp/lib/libacml_mp.so
            /opt/acml3.6.1/gfortran64_mp/lib/libacml_mv.so
            /opt/acml4.0.1/gfortran64_int64/lib/libacml.so
            /opt/acml4.0.1/gfortran64_int64/lib/libacml_mv.so
            /opt/acml4.0.1/gfortran64_mp_int64/lib/libacml_mp.so
            /opt/acml4.0.1/gfortran64_mp_int64/lib/libacml_mv.so
            /usr/lib/libgfortran.so.1.0.0
            /usr/lib/libgfortran.so.2
            /usr/lib/libgfortran.so.2.0.0
            /usr/lib/gcc/x86_64-linux-gnu/4.2/32/libgfortran.so
            /usr/lib/gcc/x86_64-linux-gnu/4.2/libgfortran.so
            /usr/lib/libgfortran.so.1
            /usr/lib32/libgfortran.so.2
            /usr/lib32/libgfortran.so.2.0.0


            je sais vraiment pas quoi faire ....
            • [^] # Re: autre precision

              Posté par . Évalué à 1.

              j'ai rajouter /usr/lib/gcc/x86_64-linux-gnu/4.2/ à mon /etc/ld.so.conf, j'ai refait un sudo ldconfig.
              je recompille mais toujours la même erreur...
              • [^] # Re: autre precision

                Posté par . Évalué à 1.

                j'ai résolu mon probléme, j'ai créé directement dans /usr/lib un lien symbolique nommé libgfortran.so qui pointe vers libgfortran.so.2.0.0

                merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.