linux下安裝blas和lapack

2021-07-23 15:01:20 字數 1692 閱讀 6364

這兩個數學庫是很多linux科學計算軟體需要呼叫的,所以經常會用到。

lapack,其名為linear algebra package的縮寫,是一以fortran程式語言寫就,用於數值計算的函式集。lapack提供了豐富的工具函式,可用於諸如解多元線性方程序、線性系統方程組的最小平方解、計算特徵向量、用於計算矩陣qr分解的householder轉換、以及奇異值分解等問題。

blas,全稱basic linear algebrasubprograms,即基礎線性代數子程式庫,裡面擁有大量已經編寫好的關於線性代數運算的程式。

1.確保機器上安裝了gfortran編譯器,如果沒有安裝的話,可以使用sudo apt-get installgfortran

3.這裡就是具體的編譯步驟

1)編譯blas, 進入blas資料夾,執行以下幾條命令

gfortran -c -o3 *.f  # 編譯所有的 .f 檔案,生成 .o檔案 

ar rv libblas.a *.o  # 鏈結所有的 .o檔案,生成.a 檔案  

su cp libblas.a /usr/local/lib  #將庫檔案複製到系統庫目錄  

2)編譯cblas, 進入cblas資料夾,首先根據你自己的計算機平台,將目錄下某個 makefile.***複製為 makefile.in , ***表示計算機的平台,如果是linux,那麼就將makefile.linux 複製為makefile.in,然後執行以下命令

cp ../blas/libblas.a testing  # 將上一步編譯成功的 libblas.a複製到 cblas目錄下的testing子目錄  

make # 編譯所有的目錄  

sudo cp lib/cblas_linux.a /usr/local/lib/libcblas.a #將庫檔案複製到系統庫目錄下  

3)編譯lapack以及lapacke,這一步比較麻煩,首先當然是進入lapack-3.4.2資料夾,然後根據平台的特點,將install目錄下對應的make.inc.***複製乙份到 lapack-3.4.2目錄下,並命名為make.inc, 這裡我複製的是install/make.inc.gfortran,因為我這裡用的是gfortran編譯器。

修改lapack-3.4.2/makefile,因為lapack以來於blas庫,所以需要做如下修改

#lib: lapacklib tmglib

lib: blaslib variants lapacklig tmglib

make # 編譯所有的lapack檔案 

cd lapacke # 進入lapacke 資料夾,這個資料夾包含lapack的c語言介面檔案 

make # 編譯lapacke  

cp include/*.h /usr/local/include#將lapacke的標頭檔案複製到系統頭檔案目錄  

cd .. #返回到 lapack-3.4.2 目錄 

cp *.a /usr/local/lib # 將生成的所有庫檔案複製到系統庫目錄 

這裡的標頭檔案包括: lapacke.h, lapacke_config.h, lapacke_mangling.h,lapacke_mangling_with_flags.h lapacke_utils.h

生成的庫檔案包括:liblapack.a, liblapacke.a, librefblas.a,libtmglib.a

至此cblas和lapack就成功安裝到你的電腦上了。

php的Apa紅燈 Deepin 下安裝 LAMP

ubuntu deepin linux 下使用 apt get 安裝所需套的軟體 lamp 1.安裝 apacache2 apt get install apache2 配置檔案 etc apache2 apache2.conf service apache2 start service apach...

Linux下安裝軟體和解除安裝

在windows下安裝軟體時,只需用滑鼠雙擊軟體的安裝程式,或者用zip等解壓縮軟體解壓縮即可安裝。在linux下安裝軟體對初學者來說,難度高於windows下軟體安裝。下面我就詳細講解linux下如何安裝軟體。先來看看linux軟體副檔名。軟體字尾為.rpm最初是red hat linux提供的一...

linux下安裝和執行wireshark

一 安裝 以root使用者執行 yum install wireshark 二 執行 在終端中鍵入命令 wireshark bash wireshark command not found whereis wireshark wireshark usr lib wireshark usr share...