2010-01-31 23 views
1

J'essaie d'utiliser une bibliothèque open source http://arma.sourceforge.net pour les calculs d'algèbre linéaire. Certaines des fonctions dans Armadillo comme pinv utilisent LAPACK. J'ai écrit un morceau de code très simple pour utiliser Armadillo pour calculer pinv, mais cela produit une erreur d'exécution. C'est probablement parce que je n'ai pas d'indicateurs de liens LAPACK dans le fichier SLN.Comment utiliser LAPACK dans un projet Visual Studio 2008 en utilisant Armadillo

#include <iostream> 

#include "armadillo" 

using namespace arma; 
using namespace std; 


int main(int argc, char** argv) 
    { 

mat A = rand<mat>(4,5); 
mat pinverse = pinv(A); 
A.print("A="); 
return 0; 

    } 

Répondre

0

D'abord, avez-vous la bibliothèque LAPACK? Sinon, en obtenir un (il y a un certain nombre d'implémentations à choisir). Sinon, vérifiez la documentation de cette bibliothèque ou lisez-moi. Il n'y a rien de spécifique à Visual C++ ici.

Généralement, tout ce qui est nécessaire est: ajoutez "lapack.lib" à l'entrée de l'éditeur de liens (dans les paramètres du projet).

+0

J'ai LAPACK 3.1.1 pour Windows, mais ne fonctionne pas – iceman

+0

J'ai mis à jour la réponse avec le fichier lib évident, sinon - ne peut pas aider, il doit y avoir quelque chose d'inhabituel à propos de votre situation. Essayez une installation propre sur un autre PC si vous le pouvez. – ima

+0

Le VS 2008 sln que j'essaie de compiler est ici: http://sites.google.com/site/icemancode/file-cabinet/pseudoInverseMat.rar?attredirects=0&d=1 – iceman

0

Pour utiliser LAPACK, en supposant que vous liez les bibliothèques à votre projet, vous devez également décommenter #define ARMA_USE_LAPACK dans config.hpp de Armadillo. La même chose vaut pour BLAS.