在我的求索中,为了快速解决对称实矩阵的特征向量问题(我只需要第一个N个特征值和向量,其中“第一个”指的是最大的(实)值),我试图让ARPack++在Windows上运行。我使用MSVS 2010进行开发。
我现在在地狱里。我也不是99年的C++专业人士,早餐吃点东西。
首先,ARPACK++是一个只有头的库,这很好!它依赖于ARPACK,并且ARPACK再次需要对BLAS和LAPACK的依赖。幸运的是,对于windows用户来说,用于BLAS、LAPACK和ARPACK的.lib和.dll文件可得以及ARPACK++都是修补,因此它可以与现代编译器一起工作(并包括一些bug修复)。
看起来,ARPACK++将必需的依赖引入到SuperLU库中。这是因为,在我的情况下,我需要使用
ARluSymStdEig<ARFLOAT> prob(nev, matrix, which, ncv, tol,
maxit, resid, AutoShift);类/CTOR,它的名称中有"lu“,而我确实得到了缺少的符号。接下来我尝试的是从那个时候(2000年左右)抓取SuperLU库,即SuperLU 2.0。可以直接使用MSVS2010进行编译(例如,与必须使用MinGW/MSys编译的ARPACK相比,除非您为Intel的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似乎又有了依赖项,但没有提到它们。
发布于 2012-06-17 15:02:48
结果,我忘记做的不仅仅是将.c和.h文件从SuperLU的"src“添加到VS项目中,还添加来自"cblas”目录的文件。因此,所有依赖项都得到了解决。
https://stackoverflow.com/questions/11071998
复制相似问题