Lapack in c++ benutzen
-
Hallo,
ich habe Lapack (Linear Algebra Package) 3.1.1-67.1
(Architektur: x86_64) unter YAST (Suse 11) als rpm
installiert (http://www.netlib.org/lapack/)Dabei wurden laut YAST insgesamt 3 Dateien installiert:
/usr/lib64/liblapack.a
/usr/lib64/liblapack.so
/usr/lib64/liblapack_pic.aDa ich keine lapack.h Datei finden kann, weiss ich
nicht, wie die Library in mein C++ Code einbinden
soll?Compilieren mit (gcc version 4.3.1)
g++ -O -I/usr/include testlapack.cc -o myprog -L/usr/lib64 -llapack
führt zu :
testlapack.cc:2:21: error: lapack.h: Datei oder Verzeichnis nicht gefunden
testlapack.cc: In function ‘int main()’:
testlapack.cc:33: error: ‘dgesv’ was not declared in this scopeDas Testprogramm sieht so aus:
#include <iostream> #include <lapack.h> #define MAX 10 int main(){ // Values needed for dgesv int n; int nrhs = 1; double a[MAX][MAX]; double b[1][MAX]; int lda = MAX; int ldb = MAX; int ipiv[MAX]; int info; // Other values int i,j; // Read the values of the matrix std::cout << "Enter n \n"; std::cin >> n; std::cout << "On each line type a row of the matrix A followed by one element of b:\n"; for(i = 0; i < n; i++){ std::cout << "row " << i << " "; for(j = 0; j < n; j++)std::cin >> a[j][i]; std::cin >> b[0][i]; } // Solve the linear system dgesv(n, nrhs, &a[0][0], lda, ipiv, &b[0][0], ldb, &info); // Check for success if(info == 0) { // Write the answer std::cout << "The answer is\n"; for(i = 0; i < n; i++) std::cout << "b[" << i << "]\t" << b[0][i] << "\n"; } else { // Write an error message std::cerr << "dgesv returned error " << info << "\n"; } return info; }Hat jemand Erfahrung mit Lapack?
-
hast du eventuell die dev-pakete vergessen?
-
Was meinst du genau?
-
dev-Pakete sind die Pakete für Entwickler (developer), darin sind normalerweise die header, Dokumentation usw. Was du bisher hat sind nur die puren Bibliotheken, die benötigt werden um fertig kompilierte Programme zu linken (statisch oder dynamisch).