Неустранимая ошибка C1083: Невозможно открыть файл включения: ‘complex.h’: Нет такого файла или каталога .. \ lapacke \ include \ lapacke.h

Я построил DLL & Загрузки LAPACKE для моей Visual Studio 2008 основаны на следующей ссылке:

http://icl.cs.utk.edu/lapack-for-windows/lapack/

После сборки LAPACKE я протестировал, как показано ниже, и он прошел тесты:

введите описание изображения здесь

После сборки у меня есть следующие файлы:

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь

Я использовал следующие советы в моей Visual Studio 2008:

введите описание изображения здесь

Теперь у меня есть следующий проект Visual Studio 2008:

введите описание изображения здесь

У меня есть следующие части кода C ++ в моем проекте:

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь

Когда я закомментирую строку #include "lapacke.h" исполняемые сборки, и я получаю следующий вывод консоли:

введите описание изображения здесь

Однако, когда я не комментирую #include "lapacke.h"Я получаю следующие ошибки:

введите описание изображения здесь

Расположение ошибки — строка 73 lapacke.h показано ниже:

введите описание изображения здесь

Я ценю любую помощь.


РЕДАКТИРОВАТЬ:

Даже после включения #include <cstdlib> до #include "lapacke.h"происходят те же ошибки:

введите описание изображения здесь


РЕДАКТИРОВАТЬ:

По следующим ссылкам некоторые люди обсуждали проблему, которая выглядит актуальной:

http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&т = 2284

http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&т = 4221


РЕДАКТИРОВАТЬ

в файле lapacke.h Следующие операторы доступны для сложных типов.

/* 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>"*/

#ifndef LAPACK_COMPLEX_CUSTOM

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

#ifndef lapack_complex_float_real
#define lapack_complex_float_real(z)       (creal(z))
#endif

#ifndef lapack_complex_float_imag
#define lapack_complex_float_imag(z)       (cimag(z))
#endif

lapack_complex_float lapack_make_complex_float( float re, float im );

/* Complex type (double precision) */
#ifndef lapack_complex_double
#include <complex.h>
#define lapack_complex_double   double _Complex
#endif

#ifndef lapack_complex_double_real
#define lapack_complex_double_real(z)      (creal(z))
#endif

#ifndef lapack_complex_double_imag
#define lapack_complex_double_imag(z)       (cimag(z))
#endif

lapack_complex_double lapack_make_complex_double( double re, double im );

#endif

Я изменил заголовочный файл, как показано ниже:

введите описание изображения здесь

Однако я получаю следующую ошибку:

введите описание изображения здесь

Вышеуказанная ошибка происходит в следующем месте:

введите описание изображения здесь

Я не уверен, как решить эту ошибку.


РЕДАКТИРОВАТЬ:

Наконец-то решили проблему, добавив #include <complex> как показано ниже. Кстати, этот пост помог мне разобраться: Ошибка MinGW: ‘min’ не является членом ‘std’

введите описание изображения здесь

Перестраивает без проблем:

введите описание изображения здесь

2

Решение

Lapacke это код C, а не C ++. Visual C ++ имеет ограниченную поддержку C и не поддерживает _Complex, В C ++ вы бы использовали std::complex<float>,

определяющий LAPACK_COMPLEX_CUSTOM может пропустить использование _Complexв соответствии с кодом, который вы показали.

PS. Пожалуйста, включите исходный код в ваш вопрос, а не изображения.

1

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


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