BLAS CBLAS 安装技巧

下载BLAS,CBLAS安装包

下载网址:www.netlib.org/blas/,下载对应的 blas-3.8.0.tgz,cblas.tgz文件。

阅读对应软件包里面的README文件

主要内容如下

  1. 建立对应的软连接
ln -s Makefile.LINUX Makefile.in
  1. 修改对应的Makefile.linux文件
CBDIR  is the directory where you unpacked the tar file
BLLIB  is your Legacy BLAS library
BLLIB = $(HOME)/software/blas/blas_LINUX.a
CBDIR = $(HOME)/software/cblas

3.make all即可,对于发生的问题我主要遇到了如下问题。
这个问题的解决在makefile文件编译时加上 -lgfortran.

/home/lenovo/software/blas/blas_LINUX.a(xerbla.o):在函数‘xerbla_’中:
xerbla.f:(.text+0x53):对‘_gfortran_st_write’未定义的引用
xerbla.f:(.text+0x5e):对‘_gfortran_string_len_trim’未定义的引用
xerbla.f:(.text+0x73):对‘_gfortran_transfer_character_write’未定义的引用
xerbla.f:(.text+0x83):对‘_gfortran_transfer_integer_write’未定义的引用
xerbla.f:(.text+0x8b):对‘_gfortran_st_write_done’未定义的引用
xerbla.f:(.text+0x94):对‘_gfortran_stop_string’未定义的引用
collect2: ld returned 1 exit status
Makefile:180: recipe for target 'example1' failed
make: *** [example1] Error 1

如果对应又报出下面的错误

/usr/bin/ld: 找不到 -lgfortran
collect2: ld returned 1 exit status
Makefile:180: recipe for target 'example1' failed
make: *** [example1] Error 1

解决方法为先查找该电脑是否有对应库文件,在建立一个软链接:

sudo find /usr/ -name libgfortran.so
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.so /usr/lib/

如果对应的错误为,则可以参见Install G77 on Ubuntu >=14.04

/usr/bin/ld: 找不到 crt1.o: 没有那个文件或目录
/usr/bin/ld: 找不到 crti.o: 没有那个文件或目录
collect2: ld returned 1 exit status
Makefile:73: recipe for target 'xscblat1' failed
make[1]: *** [xscblat1] Error 1
make[1]: 离开目录“/home/lenovo/software/cblas/testing”
Makefile:177: recipe for target 'alltst' failed
make: *** [alltst] Error 2

错误2:找不到 -lgcc_s,也可以参见Install G77 on Ubuntu >=14.04。

/usr/bin/ld: 找不到 -lgcc_s
collect2: ld returned 1 exit status
Makefile:73: recipe for target 'xscblat1' failed
make[1]: *** [xscblat1] Error 1
make[1]: 离开目录“/home/lenovo/software/cblas/testing”
Makefile:177: recipe for target 'alltst' failed
make: *** [alltst] Error 2

本次博文写作学到的小技巧

  • linux在终端内容上搜索关键词
在terminal中搜索内容,terminal 里按 Ctrl + Shift + F 可以查找终端输出的内容。
  • 认真阅读README文件,这个很关键。

你可能感兴趣的:(杂七杂八)