我需要帮助在Linux gcc中设置LAPACK。我是LAPACK的新手,并且不了解使用Fortran。
我已经下载了lapack-3.4.0,并使这些库得到了 liblapack.a和librefblas.a。
之后,我将这些库链接到我的程序: -llapack -lrefblas
我想使用像dpotrf,dgetrf,dgetri等LAPACK函数, 如何包含头文件以便我的编译器找到这些函数?我是否需要使用lapacke,一个LAPACK的C接口?
答案 0 :(得分:0)
有几种方法可以将LAPACK与c ++一起使用。这就是我要做的事情(假设你在某些* nix系统上)。
确保您拥有正确的库,并且您知道正确的编译器/链接器选项集。由于这些是用Fortran编写的,因此我将从Fortran代码开始。像this one一样。确保您可以使用gfortran
进行编译。可能的链接器选项可能(取决于您的系统):-llapack
,-lblas
或这些的一些组合。
然后转到使用C ++接口。同样,有多种方法。我个人觉得最容易使用clapack接口,你在这里声明LAPACk函数:
extern "C" void dsyev_( char *jobz, char *uplo, int &n, double *a, int &lda, double *w, double *work, int &lwork, int &info);
正确的链接器选项集取决于你的系统,可以是这样的:-llapack -lf77blas -latlas
(这个集合适用于我的Ubuntu,其中LAPACK来自atlas
包)。