lgfortran nicht gefunden

8

Ich benutze Ubuntu 10.04 und versuche, Code zu kompilieren, der gfortran benutzt. Irgendwann macht Makefiles:

%Vor%

und ich bekomme den Fehler

%Vor%

obwohl es installiert ist:

%Vor%

Wie kann ich es beheben?

P.S: Das Makefile:

%Vor%     
flow 04.06.2012, 12:06
quelle

4 Antworten

12

Vermutlich unterscheidet sich Ihre gfortran Version von der Version Ihres g++ ? Oder ist es vielleicht an einem anderen Ort installiert?

Die Option -lname (in diesem Fall name ist gfortran ) weist den Linker an, im Bibliothekssuchpfad nach einer Bibliotheksdatei namens libname.a zu suchen. Wenn gefunden und keine statische Verknüpfung durch die Option -[B]static erzwungen wird, sucht der Linker erneut nach libname.so und verbindet stattdessen (falls gefunden). Wenn libname.a nicht gefunden wird, wird trotz des Vorhandenseins von libname.so ein Fehler ausgegeben.

Es sollte irgendwo in Ihrer libgfortran.a Installation ein gfortran sein. Suchen Sie danach mit find und geben Sie den Pfad zu g++ mit -L/path/to/compiler/libs an. Wenn g++ dieselbe Version wie gfortran ist, ist der Pfad zu libgfortran.a bereits im Bibliothekssuchpfad vorhanden (da sich sowohl statische C / C ++ - als auch Fortran-Bibliotheken an derselben Stelle befinden). Es wird nicht vorhanden sein, wenn beide Compiler sich in ihrer Version unterscheiden.

Auf einem RedHat-basierten 64-Bit-System befindet sich beispielsweise libgfortran.a in /usr/lib/gcc/x86_64-redhat-linux/<GCC version>/ , während die gemeinsam genutzte libgfortran.so.* in /usr/lib64 liegt.

Eine alternative Lösung besteht darin, -lgfortran durch /usr/lib/libgfortran.so.3 zu ersetzen.

Die Option -L. ist eher verwandt mit -lCGAL als mit -lgfortran .

    
Hristo Iliev 04.06.2012, 16:21
quelle
4

Ich hatte heute das gleiche Problem beim Kompilieren von ATLAS und konnte es mit einem symbolischen Link von libgfortran.so.3 bis libgfortran.so beheben.

    
hannes 05.06.2012 15:08
quelle
3

Stellen Sie nur sicher, dass Sie:

%Vor%

Und

%Vor%

Ist das Gleiche.

%Vor%

Enthält die verschiedenen Versionen.

ZB: Wenn gcc--version returns 4.7.3 und gfortran --version 4.8 , könnte ein einfacher Hack folgendes tun:

%Vor%

Es sollte funktionieren.

    
Neuronator 20.06.2016 20:29
quelle
2

Ich hatte das gleiche Problem und habe den folgenden Befehl ausprobiert. Das Problem wurde damit gelöst:

sudo ln -s /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so

    
Mohamad Kouhi Moghadam 09.02.2017 07:03
quelle