2016-04-17 91 views
2

我想從源代碼安裝BLAS,CBLAS,LAPACK和OpenBLAS庫,使用可在此下載的可用軟件包openblaslapack,blas/cblaslapack/blas/openblas從源代碼正確安裝 - 用新代碼替換系統庫

首先,我刪除了我的系統blas/cblas和lapack庫,但不幸的是atlas庫無法卸載(我可以同時擁有blas和lapack或atlas - 無法刪除它們全部)。我沒有打擾,並開始編譯下載的庫,因爲我認爲安裝後我可以刪除圖集。

構建過程基於this教程。爲了完整起見,我將列出步驟:

  1. OpenBLAS。編輯Makefile.rule後(NO_CBLAS = 1,NO_LAPACK = 1,NO_LAPACKE = 1)文件I運行下面的代碼:

    make FC=gfortran 
    sudo make PREFIX=/usr/local/ install 
    
  2. CBLAS。編輯Makefile.in後(從-lpthread除了我需要添加-pthread標誌):

    make 
    cd lib 
    ar -x libcblas.a 
    gfortran -lopenblas -shared -o libcblas.so *.o 
    sudo cp libcblas.* /usr/local/lib/ 
    
  3. LAPACK。編輯make.inc文件後:

    make lapacklib 
    mkdir tmp 
    cd tmp 
    cp ../liblapack.3.6.0.a . 
    ar -x liblapack.3.6.0.a 
    gfortran -lopenblas -lcblas -shared -o liblapack.3.6.0.so *.o 
    sudo cp liblapack.3.6.0.* /usr/local/lib 
    
    
    cd /usr/local/lib 
    sudo ln -sn liblapack.3.6.0.a liblapack.a 
    sudo ln -sn liblapack.3.6.0.so liblapack.so 
    
  4. LAPACKE。我編輯的GCC make.inc文件以下列方式:

    CC = gcc 
    CFLAGS = -O3 -march=native -m64 -fomit-frame-pointer -fPIC 
    

    然後我運行:

    make lapackelib 
    mkdir tmpe 
    cd tmpe 
    cp ../liblapacke.a . 
    ar -x liblapacke.a 
    gfortran -lopenblas -lcblas -shared -o liblapacke.so *.o 
    sudo cp liblapacke.* /usr/local/lib 
    
  5. BLAS。我編輯make.inc文件:

    FORTRAN = gfortran 
    OPTS  = -O3 -march=native -m64 -fomit-frame-pointer -fPIC 
    DRVOPTS = $(OPTS) 
    NOOPT = -O0 -fPIC 
    LOADER = gfortran 
    LOADOPTS = -lopenblas -lcblas 
    

    並運行:

    make 
    gfortran -lopenblas -shared -o libblas.so *.o 
    sudo cp libblas.* /usr/local/lib/ 
    

現在我有我的靜態和共享庫,所有放置在/ usr/local/lib目錄的目錄,我想告訴不知何故,我的Linux mint 17.2系統,我已經安裝了,所以我終於可以卸載圖集。任何想法如何做到這一點?

我的總目標是正確設置OpenBLAS,所以我想從源碼編譯所有其他庫。我也想檢查我的圖書館是否正在工作,或者我做錯了什麼。

此外,我的長期目標是安裝Arpack和SuperLU與OpenBLAS協同工作,然後安裝Armadillo庫(C++)。

回答

1

您可以使用LD_LIBRARY_PATH環境變量。剛添加在你的~/.barsrc。即

$ echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc 

注:通知雙>>不刪除以前的內容。

第二種選擇是在/etc/ld.so.conf.d中添加路徑。即

$ echo /usr/local/lib > /etc/ld.so.conf.d/myblas.conf 

你也可以檢查this question瞭解更多詳情。