#1 Le 22/01/2015, à 12: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, à 12: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, à 12: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, à 12: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, à 12: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, à 14: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, à 14: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, à 16: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, à 16: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, à 08:37
- JBF
Re : référence indéfinie vers librairie avec fortran
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 : Ask LibreOffice
Hors ligne