2012-01-10 70 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包)。

相關問題