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"