Я построил 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’
Перестраивает без проблем:
Lapacke
это код C, а не C ++. Visual C ++ имеет ограниченную поддержку C и не поддерживает _Complex
, В C ++ вы бы использовали std::complex<float>
,
определяющий LAPACK_COMPLEX_CUSTOM
может пропустить использование _Complex
в соответствии с кодом, который вы показали.
PS. Пожалуйста, включите исходный код в ваш вопрос, а не изображения.