Ich bekomme “lapack.h: No such file or directory" obwohl ich installiert liblapack-dev
Ich installiert liblapack-dev und seine Abhängigkeiten mit Synaptic, und ich <lapack.h>
in meinem code.
Wenn ich versuche, um mein Programm zu kompilieren, wie dies...
mpicc program.c -llapack -o output
...Bekomme ich die folgende Fehlermeldung:
program.c:4:20: fatal error: lapack.h: No such file or directory
compilation terminated.
Wie kann ich dieses Problem beheben? Ich habe jetzt schon Stunden damit verbracht zu googeln nach einer Lösung aber nichts hat geholfen.
Ich bin mit Linux Mint, aber ich habe versucht, die gleiche Sache auf die neueste version von Ubuntu und es immer noch nicht funktionieren würde. Dasselbe, wenn ich versuche "eliminiert" MPI von meinem Programm und kompilieren mit gcc.
locate
derlapack.h
header, vielleicht müssen Sie die include-Pfad des Compilers.- Fischer: Wie genau finde ich die lapack.h-header? Wenn ich Schreibe "suchen lapack.h" in das terminal-ich bekomme gar nichts. Wenn ich Schreibe "suchen liblapack-dev" bekomme ich einige Ergebnisse. Und wie setze ich den include-Pfad des Compilers? Ich meine, ich habe bereits versucht etwas ähnliches (oder zumindest dachte ich, dass ich es Tat), aber ohne Erfolg.
- Die meisten Compiler haben eine
-i
oder ähnlichen Kommandozeilen-option ermöglicht die Angabe von include-Pfaden. Fragen Sie Ihren Hilfe-Dokumentation, entsprechende man-page, oder google für Ihre spezifischen compiler Befehl Optionen. - Wenn
locate lapack.h
nicht finden, können Sie es nicht bei allen, oder die Datenbanklocate
verwendet wurde nicht aktualisiert seit der Installation von lapack. Im letzteren Fall läuftupdatedb
(wahrscheinlich erfordertsudo
) würde es erlaubenlocate
d. Sie können auchfind
(oder in der GUI-Schnittstelle zu, dass, wenn die Minze hat ein) suchen. Wahrscheinlich würde es unter einer/usr/include
,/user/lib
,/usr/lib64
oder/usr/local
. Re include-Pfad, was StarPilot gesagt, aber ich weiß nicht, mpicc. - Fischer: ich habe versucht die Datenbank zu aktualisieren, und jetzt bekomme ich nur "/usr/include/atlas/clapack.h".
- Könnte sein, dass
#include <clapack.h>
ist, was Sie brauchen. Vielleicht einen Versuch Wert. - Fischer: habe ich auch schon versucht. 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erlebte ich ein ähnliches Problem unter Debian. Ich bemerkte, dass
nicht wieder einen einzelnen header-Datei. Also ich habe einige suchen mit
apt-cache
und gefunden, was scheint, eine C-Header. Nach der Installation über(beachten Sie die zusätzliche e-Mail!), Ich war in der Lage zu kompilieren eines minimalen, arbeitenden Beispiel, fand hier. Ändern der
include
oben zu Lesenund kompilieren mit
erfolgreich läuft auf meinem system. Hoffe, das jemand hilft.
Beantworten, weil es nicht passt in einem Kommentar:
Den Handbuch sagt:
so, vielleicht müssen Sie
lapack.h
, soweit ich das bestimmen kann. Vielleicht ist die Benutzerhandbuch, Schuppen mehr Licht.lapack.h
. Die C-Schnittstelle bietet, ist LAPACKE, aber Sie müssen die Präfix-Funktionen, die Sie aufrufen,info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);
etc. Vielleicht gab es einlapack.h
in älteren Versionen, oder es kommt aus einem anderen Paket, wo es verwendet wird. Ich kann nichts finden, was hilfreich ist, über die Verwendung von LAPACK mitlapack.h
mit google, sorry.