lapack / blas / openblas从源代码正确安装 - 用新的系统库替换系统库

时间:2016-04-17 12:25:48

标签: linux lapack blas linuxmint openblas

我想使用您可以在此处openblaslapackblas/cblas下载的可用软件包从源代码安装BLAS,CBLAS,LAPACK和OpenBLAS库。

首先,我删除了我的系统blas / cblas和lapack库,但遗憾的是atlas库无法卸载(我可以同时使用blas和lapack或者atlas - 不能将它们全部删除)。我没有打扰并开始编译下载的库因为我认为安装后我可以删除地图集。

构建过程基于this教程。为了完整起见,我将列出以下步骤:

  1. OpenBLAS 即可。编辑Makefile.rule(NO_CBLAS = 1,NO_LAPACK = 1,NO_LAPACKE = 1)文件后,我运行以下代码:

    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/
    
  6. 现在我将我的静态和共享库全部放在/ usr / local / lib目录中,我想知道我的linux mint 17.2系统,我已经安装了它,所以我终于可以卸载atlas了。任何想法怎么做?

    我的总体目标是正确设置OpenBLAS,所以我也希望从源代码编译所有其他库。我还想检查我的库是否正常工作,或者我做错了什么。

    我的长期目标是安装Arpack和SuperLU与OpenBLAS一起使用,然后最终安装Armadillo库(C ++)。

1 个答案:

答案 0 :(得分: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了解详情。