Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/01/2015, à 13:03

G_Yahia

référence indéfinie vers librairie avec fortran

Bonjour

J'utilise pour mes calculs une librairie fortran, librairie NAG
Tout cela fonctionnait très bien sur une machine 32x que je n'ai plus
sur mon nouveau pc ça ne fonctionne pas

quand je compile je trouve ces deux résultats

f77 d01dafe.f -lnag
   MAIN:
   p1:
   p2a:
   fa:
   p2b:
   fb:
/usr/bin/ld: escamotage incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible /lib/../lib/libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible /usr/lib/../lib/libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible //lib/libnag.a lors de la recherche de -lnag
/usr/bin/ld: escamotage incompatible //usr/lib/libnag.a lors de la recherche de -lnag
/usr/bin/ld: ne peut trouver -lnag
collect2: error: ld returned 1 exit status

ou bien

f77 d01dafe.f -L/usr/lib/libnag.a
   MAIN:
   p1:
   p2a:
   fa:
   p2b:
   fb:
d01dafe.o: dans la fonction « MAIN__ »:
fort77-6935-1.c:(.text+0xda): référence indéfinie vers « d01daf_ »
fort77-6935-1.c:(.text+0x209): référence indéfinie vers « d01daf_ »
collect2: error: ld returned 1 exit status

est-ce que quelqu'un pourrait m'aider?

Hors ligne

#2 Le 22/01/2015, à 13:08

pingouinux

Re : référence indéfinie vers librairie avec fortran

Bonjour,
Où est censée se trouver la librairie ?
Que donne

ls -l /usr/lib/libnag.a

Hors ligne

#3 Le 22/01/2015, à 13:10

G_Yahia

Re : référence indéfinie vers librairie avec fortran

voilà

ls -l /usr/lib/libnag.a
-rw-r--r-- 1 root root 10696528 janv. 21 19:53 /usr/lib/libnag.a

sinon

locate libnag.a
/home/ghassen_yahia/Bureau/NAG_lib/fllux19dg/libnag.a
/home/ghassen_yahia/Bureau/NAG_lib/fllux19dg/scripts/libnag.a
/usr/lib/libnag.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libnag.a

Hors ligne

#4 Le 22/01/2015, à 13:23

pingouinux

Re : référence indéfinie vers librairie avec fortran

Peut-être un problème analogue en C dans cette discussion : escamotage incompatible pour AMD64
Voir la dernière ligne du message #2

je devais juste la recompiler sous AMD64 pour que ca roule

Hors ligne

#5 Le 22/01/2015, à 13:28

G_Yahia

Re : référence indéfinie vers librairie avec fortran

je ne suis pas un pro d'ubuntu
donc je ne sais pas comment faire ça

Hors ligne

#6 Le 22/01/2015, à 15:41

pingouinux

Re : référence indéfinie vers librairie avec fortran

Tu n'as sans doute pas la bonne version de la librairie NAG. L'as-tu récupérée sur un site, ou compilée toi-même ?

Hors ligne

#7 Le 22/01/2015, à 15:56

G_Yahia

Re : référence indéfinie vers librairie avec fortran

je l'ai à partir de son cd (licence de la faculté)

Hors ligne

#8 Le 22/01/2015, à 17:20

claudius01

Re : référence indéfinie vers librairie avec fortran

Cela ressemble à un mélange d'édition de lien entre librairies 32 et 64 bits (cf. Skipping Incompatible Libraries at compile)
Il y a aussi le fil de discussion Compiler avec une librairie graphique qui tourne autour de ce mélange...

Sinon, il y a l'utilitaire file qui permet de savoir si un binaire ou une application est produit en 32 ou 64 bits comme par exemple :

$ file /usr/bin/find
/usr/bin/find:  ELF 64-bit LSB executable AMD64 Version 1 [SSE FXSR CMOV FPU], dynamically linked, not stripped, no debugging information available

$ file /usr/sfw/lib/libfl-2.5.4.so.0
/usr/sfw/lib/libfl-2.5.4.so.0:  ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped

Hors ligne

#9 Le 22/01/2015, à 17:43

G_Yahia

Re : référence indéfinie vers librairie avec fortran

puisque c'est une archive ar j'ai décompressé le fichier et le appliqué ton code
ça me donne ça pour tous les fichiers

y90zfft.o:  ELF 32-bit LSB  relocatable, Intel 80386, version 1 (SYSV), not stripped

pour le reste je ne sais pas trop ni quoi ni comment faire

Hors ligne

#10 Le 08/02/2015, à 09:37

JBF

Re : référence indéfinie vers librairie avec fortran

G_Yahia a écrit :
f77 d01dafe.f -lnag

Sans blague tu compiles en Fortran 77 ? Tu sais que le Fortran a évolué depuis 35 ans ? La norme actuelle de Fortran est la norme 2008. Vos profs enseignent le Fortran ou bien cherchent à tout prix à discréditer ce langage ?

Sinon pour ton problème, si tu utilises une bibliothèque 32 bits, tu peux produire un exécutable 32 bits même sur une machine 64 bits. Je te laisse chercher l'option de gfortran qui permet de faire ça. L'alternative est de te procurer la version 64 bits de la bibliothèque. Mais peut-être qu'elle n'existe pas pour toi si ton université est restée en 1980.

JBF


LibreOffice : https://fr.libreoffice.org/ (téléchargement, documentation, FAQ, assistance, contribuer, ...)
Aide pour LibreOffice par la communauté francophone : https://ask.libreoffice.org/fr/

Hors ligne