1. 從 netlab 下載最新版本的源代碼
http://www.netlib.org/lapack/lapack-3.1.0.tgz
2. 將源代碼解壓縮
tar -zxf lapack-3.1.0.tgz
3. 編輯 make.inc 文件,進行一些系統相關的編譯參數設置
PLAT : 設置生成的庫函數的後綴,比如 SUN, LINUX之類的,當然也可以不設置;
FORTRAN : 設置編譯器,比如 g77, gfortran, ifort, g95 等等;
OPT:設置編譯選項,根據具體的編譯器和優化要求進行設置;
LOADER : 設置成和FORTRAN 一樣就可以了;
4. 編輯 Makefile
找到 lib: 選項。然後設置需要編譯的庫函數如下
#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib
默認的情況是不編譯 blas 庫的。
5. 編譯和測試 Lapack.
在源代碼的根目錄下輸入 make 回車。然後 make 程序就會自動進行編譯和測試。
6. Lapack 函數的使用
如果編譯和測試順利的話會在源代碼的根目錄下生成三個文件 lapack.a、blas.a、tmglib.a.lapack.a 和 blas.a 就是我們所需要的庫函數。它們的使用有兩種途徑:
a) cp lapack.a liblapack.a , cp blas.a libblas.a 並拷貝到 LD_LIBRARY_PATH 目錄下,或者它們所在的目錄加入到 LD_LIBRARY_PATH 環境變量中,或者在編譯時候加上 “-L lapack所在目錄/” 選項。編譯的時候加上編譯選項 -llapack -lblas.
b) 編譯的時候直接把 lapack.a 和 blas.a 一起同需要編譯的代碼一起編譯。比如 要編譯的文件為 main.f90 編譯器為 gfortran . gfortran main.f90 lapack.a blas.a.
當然也可以將 Lapack 做成動態鏈接庫文件的形式來使用。當然,在 linux 系統下也可以直接安裝編譯好的文件比如 redhat 、suse 安裝 rpm 格式的文件,在 ubuntu 和 debian 系統下,安裝 deb 格式的文件。但是最好還是根據自己的環境自己編譯庫函數,這樣速度會快一些。我曾在 ubuntu 下做過實驗一般情況下速度關系為,自己編譯的庫函數 > 編譯好的庫函數 > 調用 matlab 函數