erreurs lors de l’utilisation de l’en-tête C de lapack en C ++ avec Visual Studio 2010

Aidez-moi, s’il vous plaît! Il me faut des heures pour chercher sur Internet et je n’ai pas trouvé de solution ….

J’essaie d’utiliser la fonction call lapack à partir de fonctions C++ mais j’ai échoué au tout début. Voici mon code:

 #include "stdafx.h" #include "targetver.h" extern "C" { #include "lapacke.h" } int main{} { return 0; } 

Je sais que “lapacke.h” est un en-tête C, j’utilise donc la clause extern "C" . Mais pendant que j’essaie de comstackr cette fonction sortingviale, j’ai l’erreur suivante:

 Error 1 error C2146: syntax error : missing ';' before identifier 'lapack_make_complex_float' c:\users\svd_example1\example2\example2\lapacke.h 89 1 example2 Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\svd_example1\example2\example2\lapacke.h 89 1 example2 

Est-ce que quelqu’un sait ce qui a causé ces erreurs?

Merci beaucoup!

La partie pertinente de l’en-tête est:

 /* Complex types are structures equivalent to the * Fortran complex types COMPLEX(4) and COMPLEX(8). * * One can also redefine the types with his own types * for example by including in the code definitions like * * #define lapack_complex_float std::complex * #define lapack_complex_double std::complex * * or define these types in the command line: * * -Dlapack_complex_float="std::complex" * -Dlapack_complex_double="std::complex" */ /* Complex type (single precision) */ #ifndef lapack_complex_float #include  #define lapack_complex_float float _Complex #endif /* ... */ lapack_complex_float lapack_make_complex_float( float re, float im ); 

Cela utilise C99 _Complex par défaut, ce que Visual C ++ ne prend pas en charge. Vous pouvez définir ces macros comme suggéré d’utiliser std::complex , qui sont sockets en charge par Visual C ++:

 #include  #define lapack_complex_float std::complex #define lapack_complex_double std::complex #include "lapacke.h"