c++ - 在 Visual Studio 中使用 OpenBLAS LAPACKE

标签 c++ visual-studio lapack openblas lapacke

我的项目中需要一些线性代数,并想为此使用 OpenBLAS。我下载了预编译版本 ( 64bit version ) 并将其解压到我的项目文件夹中。在 Visual Studio 中,我将 include-、bin- 和 lib- 文件夹添加到我的项目中并运行了这个 example没有问题。

接下来,我想看看LAPACK,所以我把lapacke.h加到include里,它和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

有人能告诉我我做错了什么吗?

最佳答案

问题是 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>

关于c++ - 在 Visual Studio 中使用 OpenBLAS LAPACKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520244/

相关文章:

c++ - OpenCV 从 Mat 访问元素

c++ - C++ 中的矩阵运算(使用 Blas/Lapack 或其他替代方案)

c++ - 静态和动态 MFC 链接

c# - VS 2008——在构建属性中使用相对路径

c# - 内联 SQL 查询的最佳实践

php - 无法使用 Lapack : Class 'Lapack' not found in

javascript - 如何在 JavaScript 中实现 MATLAB 的 "eig(A, B)"函数

c++ - 即使在向其添加新成员后,结构大小也保持不变

c++ - 错误 : no type named 'vector' in namespace 'std'

大型数组中的 C++ 性能