我的项目中需要一些线性代数,并希望使用OpenBLAS。我下载了预编译版本(64bit version)并将其解压缩到我的项目文件夹中。在Visual Studio中,我将include-,bin-和lib-文件夹添加到我的项目并运行此example没有问题。
接下来,我想查看LAPACK,所以我将lapacke.h添加到includes,它与cblas.h位于同一目录中,并包含在官方下载中。但现在我得到了数百个错误,对于每个函数,就好像一个lib文件丢失或者什么的。例如。对于这一行
85 lapack_complex_float lapack_make_complex_float( float re, float im );
我得到了
PATH\include\lapacke.h(85): error C2146: syntax error: missing ';' before identifier 'lapack_make_complex_float'
我找不到有关如何设置OpenBLAS / LAPACK的更多信息,他们通常只是说'包含文件',我有。否则,cblas示例也不会运行。我可以找到的(相关)示例只使用cblas.h,而不是lapacke.h
有些人可以告诉我我做错了吗?
答案 0 :(得分:0)
问题是OpenBlas默认使用C99 _Complex。 Visual C ++不支持此功能。您可以在包含lapacke.h之前通过使用标准库定义来解决此问题:
#include <complex>
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>
#include <lapacke.h>