在Visual Studio中使用OpenBlas Lapacke
Using OpenBLAS LAPACKE in Visual Studio
我在项目中需要一些线性代数,并希望为此使用OpenBlas。我下载了预编译版本(64位版本),并将其打开给我的ProjectFolder。在Visual Studio中,我在我的项目中添加了Incluber-,bin-和lib folder,并毫无问题地运行了这个示例。
接下来,我想查看拉帕克(Lapack),所以我将lapacke.h添加到了Incluph,该目录与CBLAS.H相同,并包含在官方下载中。但是现在,对于每个功能,我都会遇到数百个错误,就好像丢失了一个lib文件一样。例如。对于此行
85 lapack_complex_float lapack_make_complex_float( float re, float im );
我得到
PATHincludelapacke.h(85): error C2146: syntax error: missing ';' before identifier 'lapack_make_complex_float'
我找不到有关如何设置OpenBlas/lapack的更多信息,他们通常只是说"包括文件"。否则,CBLA示例也不会运行。和(相关的)示例我只能使用cblas.h,而不是lapacke.h
有人可以告诉我我做错了什么?
问题是OpenBlas默认情况下使用C99 _ Complex。视觉C 不支持这。您可以在包含lapacke.h:
之前使用标准库定义来解决此问题。#include <complex>
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>
#include <lapacke.h>
使用std ::综合体是有问题的
Microsoft编译器的现代版本(例如Vstudio 2022中的一个)支持类似的" _complex"机制。因此,我在" lapacke.h"
之前包括以下标头文件#ifdef _MSC_VER
#include <complex.h>
#define LAPACK_COMPLEX_CUSTOM
typedef _Dcomplex lapack_complex_float;
typedef _Fcomplex lapack_complex_double;
#define lapack_complex_float_real(z) (real(z))
#define lapack_complex_float_imag(z) (imag(z))
#endif // _MSC_VER
请参阅lapack.h标头文件,该文件与OpenBlas一起发货#define Lapack_complex_custom覆盖复杂变量类型定义
相关文章:
- 编译 OpenBLAS C++项目会产生错误"Undefined symbols for architecture x86_64"
- LAPACKE函数中需要全矩阵或三角形部分进行对角化?
- 加速 RcppArmadillo:如何在 R 包中链接到 OpenBlas
- 将OpenBLAS与Qt Creator项目链接
- OpenBLAS 只为一个例程设置线程数
- 在Visual Studio中使用OpenBlas Lapacke
- 编译c++时链接openblas和mkl库
- C++ templates and OpenBLAS
- C++/LapackE 代码在 Windows 上编译良好,但相同的代码在 Linux 上编译失败
- 比numpy/scipy openblas慢性 mkl或开放式布拉斯
- lapacke/gnu c :lapacke_zheevx()函数中的怪异错误
- LAPACKE特征解不准确.如何改进它
- 如何将C 链接到OpenBlas
- 将 c++ OpenBLAS 库添加到 c# 项目
- What is Armadillo+Atlas , Armadillo+OpenBLAS, Armadillo+uBLA
- GLPK OpenBLAS 运行时 dll 链接错误
- 安装openBLAS后无法声明lapacke.h
- Armadillo + OpenBLAS multi-threading
- Caffe安装-缺少OpenCv 2.4和OpenBlas 0.2.14的NuGet包-在Visual Studio 2
- 如何使armadillo-5.200.1(+openblas或lapacke)与visualstudio2010合作