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

标签 linux lapack blas linux-mint openblas

我想使用可在此处下载的可用软件包从源代码安装 BLAS、CBLAS、LAPACK 和 OpenBLAS 库 openblaslapack , blas/cblas .

首先我删除了我的系统 blas/cblas 和 lapack 库,但不幸的是无法卸载 atlas 库(我可以同时拥有 blas 和 lapack 或 atlas - 不能全部删除它们)。我没有打扰并开始编译下载的库,因为我认为安装后我可以删除 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. 拉帕克。编辑 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. 拉帕克。我通过以下方式为 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 系统我已经安装了它们,以便我最终可以卸载 atlas。有什么想法吗?

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

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

最佳答案

您可以使用 LD_LIBRARY_PATH 环境变量。刚刚添加到您的 ~/.bashrc 中。即

$ 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也了解更多详情。

关于linux - lapack/blas/openblas 从源代码正确安装 - 用新的替换系统库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36676449/

相关文章:

python - 无法导入 numpy : Error:/usr/lib/liblapack. so.3: undefined symbol: gotoblas

c++ - macOS Sierra 上带有 Qt 的 Dlib C++ 库

python - Windows 上的 Theano 与 Anaconda : how to setup BLAS?

linux - 仅使用 bash 内置命令在 linux/solaris 中移动/复制文件/文件夹

linux - Yocto Project USB 传感器访问

c++ - Lapack 链接错误,使用 -fPIC 重新编译

c++ - 编译期间无法从 Accelerate Framework 链接 BLAS -OS Yosemite 10.0.5

c++ - "error LINK2019: unresolved..."

linux - 使用 7zip 解压文件后如何重命名这些文件并保存

linux - Bash 从行中的 2 个单词中添加数字