ошибки с использованием заголовка Lapack C в C ++ с Visual Studio 2010

Пожалуйста, помогите мне! Мне нужно несколько часов, чтобы посмотреть в интернете, и я не нашел решения …

Я пытаюсь использовать функцию вызова Lapack из C++ функции, но я потерпел неудачу в самом начале. Вот мой код:

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

Я знаю, что «lapacke.h» является заголовком C, поэтому я использую extern "C" пункт. Но пока я пытаюсь скомпилировать эту тривиальную функцию, у меня возникает следующая ошибка:

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

Кто-нибудь знает, что вызвало эти ошибки?

Большое спасибо!

5

Решение

Соответствующая часть заголовка:

/* 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<float>
* #define lapack_complex_double std::complex<double>
*
* or define these types in the command line:
*
* -Dlapack_complex_float="std::complex<float>"* -Dlapack_complex_double="std::complex<double>"*/

/* Complex type (single precision) */
#ifndef lapack_complex_float
#include <complex.h>
#define lapack_complex_float    float _Complex
#endif

/* ... */

lapack_complex_float lapack_make_complex_float( float re, float im );

Это использует C99 _Complex по умолчанию, который Visual C ++ не поддерживает. Вы можете определить эти макросы, как предлагается использовать std::complex вместо этого, которые поддерживаются Visual C ++:

#include <complex>
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>
#include "lapacke.h"
6

Другие решения


По вопросам рекламы [email protected]