在Windows上使用ARPACK++和Visual Studio
Using ARPACK++ on Windows with Visual Studio
为了快速解决对称实矩阵的特征向量问题(我只需要前N个特征值和向量,其中"第一个"是指具有最大(实)值的那个),我正在尝试让ARPack++在Windows上运行。我使用 MSVS 2010 进行开发。
我目前在链接器地狱。我也不是一个99岁的专业人士,早餐吃点东西C++。
首先,ARPACK++是一个仅标题库,这很好!它依赖于ARPACK,ARPACK再次依赖于BLAS和LAPACK。幸运的是,对于Windows用户来说,.lib和.dll文件可用于BLAS,LAPACK和ARPACK,并且ARPACK++已经修补,以便它可以与现代编译器一起使用(并包括一些错误修复)。
看起来,ARPACK++为SuperLU库引入了所需的依赖项。这是因为,就我而言,我需要使用
ARluSymStdEig<ARFLOAT> prob(nev, matrix, which, ncv, tol,
maxit, resid, AutoShift);
class/CTOR,它的名字中有"lu",我确实缺少符号。接下来我尝试的是获取当时(2000年左右)的SuperLU库,即SuperLU 2.0。这个可以直接使用MSVS2010编译(例如,与ARPACK相比,ARPACK必须使用MinGW/MSys编译,除非您为英特尔的FORTRAN编译器付费)。我包含了我创建的静态superlu2.lib,但似乎SuperLU本身具有刚刚声明但未实现的方法,特别是
void cusolve(int, int, complex*, complex*);
void clsolve(int, int, complex*, complex*);
void cmatvec(int, int, int, complex*, complex*, complex*);
在 CGSTRS.c.现在我被困住了,不知道如何继续:/似乎 SuperLU 又有了依赖项,但没有提到它们。
事实证明,
我忘记做的不仅是将SuperLU的"src"中的所有.c和.h文件添加到VS项目中,而且还要添加"cblas"目录中的文件。这样就解决了所有依赖关系。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 不同的Visual Studio版本中缺少.dll
- 用Visual Studio在C++中嵌入Julia
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- Visual Studio在尝试读取resource.txt文件时崩溃
- Visual Studio 2017 不允许我创建 C++ 专用模板