2

我需要帮助在 Linux gcc 中设置 LAPACK。我是 LAPACK 新手,不知道使用 Fortran。

我已经下载了 lapack-3.4.0,并制作了获取 liblapack.a 和 librefblas.a 的库。

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

我想使用 dpotrf、dgetrf、dgetri 等 LAPACK 函数,如何包含头文件以便编译器找到函数?我有必要使用 lapacke,一个 LAPACK 的 C 接口吗?

4

1 回答 1

0

有几种方法可以将 LAPACK 与 c++ 一起使用。这就是我要做的(假设你在一些 *nix 系统上)。

  1. 确保您拥有正确的库并且您知道正确的编译器/链接器选项集。由于这些是用 Fortran 编写的,我将从 Fortran 代码开始。喜欢这个。确保您可以使用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包)。

于 2012-01-11T15:32:34.537 回答