2012-01-10 51 views
2

我需要帮助来设置在Linux GCC的LAPACK。我是LAPACK的新手,对使用Fortran没有任何认识。LAPACK与海湾合作委员会启动指南

我已经下载了lapack-3.4.0,并使库得到 liblapack.a和librefblas.a。

之后,我这些库链接到我的程序: -llapack -lrefblas

我想用LAPACK功能,如dpotrf,dgetrf,dgetri等, 如何包含头文件,以便我编译器找到函数?对于我来说,使用lapacke(一个用于LAPACK的C接口)是必要的吗?

回答

0

在C++中使用LAPACK有几种方法。这就是我会做的(假设你在某个* nix系统上)。

  1. 确保您有合适的库,并且您知道正确的编译器/链接器选项集。由于这些是用Fortran编写的,因此我会先从Fortran代码开始。像this one。确保你可以使用gfortran进行编译。可能的链接器选项可能(取决于您的系统):-llapack-lblas或这些的一些组合。

  2. 然后继续使用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包)。

相关问题