Problem beim Benutzen von Lapack++
-
Hi,
ich habe ein Problem beim Benutzen der Lapack++ Bibliothek.
Ich habe Kubuntu Linux auf meinem Rechner und habe bereits die Bibliothek mit
"make libs" compiliert, das hat soweit alles funktioniert.
Nun versuche ich in meinem Programm die Funktion "LaLinearSolve" aufzurufen und es kommen folgende Fehler.liblapack++.a(linslv.o): In function `LaLULinearSolveIP(LaGenMatDouble&, LaGenMatDouble&, LaGenMatDouble&)': linslv.cc:(.text+0x264): undefined reference to `dgesv_' Lapackpp1.1a/liblapack++.a(linslv.o): In function `LaQRLinearSolveIP(LaGenMatDouble&, LaGenMatDouble&, LaGenMatDouble&)': linslv.cc:(.text+0x7ef): undefined reference to `dgels_' linslv.cc:(.text+0x96b): undefined reference to `dgels_' Lapackpp1.1a/liblapack++.a(linslv.o): In function `LaCholLinearSolveIP(LaSpdMatDouble&, LaGenMatDouble&, LaGenMatDouble&)': linslv.cc:(.text+0xd2f): undefined reference to `dposv_'
Wenn ich ein Objekt der Klasse "LaGenMatDouble" erstelle, also eine Matrix, dann funktioniert das einwandfrei. Es scheint nur Probleme zu geben, wenn ich
LaLinearSolve aufrufe um das Gleichungssystem zu lösen, weil diese Funktion andere Funktionen aufruft, die er anscheinend nicht findet.
Hier mein Code:#include <boost/config.hpp> #include <iostream> #include <vector> #include <string> #include "lapack++.h" int main() { using namespace std; LaGenMatDouble A(2,2); A(0,0) = 3; A(0,1) = 1; A(1,0) = 2; A(1,1) = 2; LaVectorDouble b(2); b(0) = 4; b(1) = 4; LaVectorDouble x(2); LaLinearSolve(A,x,b); // diese Stelle verursacht den Fehler return EXIT_SUCCESS; }
Ich hoffe jemand kann mir weiterhelfen.
Vielen Dank<edit by kingruedi>Bitte benutze Syntaxhighlight:
sfds
</edit>
-
Lapack vermisst einige Funktionen. Vielleicht musst du noch eine weitere Lib installieren oder linken. Müsste eigentlich in der Doku stehen.
-
NOTE: Lapack++ has been superseded by the Template Numerical Toolkit (TNT), which utilizes new features of the ANSI C++ specification. TNT is a new design, but will integrate the functionality of lapack++, IML++, SparseLib++, and mv++.