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

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

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

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

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

make FC=gfortran
sudo make PREFIX=/usr/local/ install

> 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/

> 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

> 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

> 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环境变量.刚添加到〜/ .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以获取更多详细信息.

点赞