compilation lapack et appel depuis c++
Bonjour,
Je cherche a utiliser lapack dans un programme en C++ developpé sous windows.
Pour cela, j'ai commencé par un test : j'ai interfacé une petite librairie fortran (qui multiplie un entier par 2) avec un programme C++. Pas de problemes, ca fonctionne parfaitement.
Pour passer à l'étape suivante, j'ai selectionné les fichiers de lapack dont j'ai besoin et je les ai compiles, un a un, en .o avec g95. J'inclus ensuite les .o dans mon projet C++.
A la compilation j'ai une soixantaine d'erreur du type :
Citation:
obj/Debug/dgeev.f: (.text+0xdab) undefined reference to '__g95_copy_string'
J'ai l'impression qu'il faut inclure dans mon projet des librairies internes au fortran, du type libm.a, libkernel32.a, etc...
Mais mon compilateur C++ refuse toutes les librairies en .a, il n'accepte que les fichiers .o.
Quelqu'un aurait une idée ?
Voici mon code c++
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <iostream>
using namespace std;
extern "C" void dgeev_(char *jobvl, char *jobvr, int *n, int ***a, int *lda, double **wr, double **wi, double ***vl, int *ldvl, double ***vr, int *ldvr, \
double **work, int *lwork, int *info);
extern void g95_runtime_start(int argc, const char *argv[]);
extern void g95_runtime_stop();
int main(int argc, const char *argv[])
{
g95_runtime_start(argc,argv);
cout << "Hello world!" << endl;
g95_runtime_stop();
return 0;
} |