我需要在我的项目中一些线性代数,并希望使用OpenBLAS为此。我下载了预编译版(64bit version)并解压缩到我的项目文件夹中。在Visual Studio中,我将include-、bin-和lib-文件夹添加到了我的项目中,并运行了this example,没有出现任何问题。
接下来,我想看看LAPACK,所以我在includes中添加了lapacke.h,它与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。
有人能告诉我我哪里做错了吗?
发布于 2019-10-18 15:19:48
问题是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>https://stackoverflow.com/questions/47520244
复制相似问题