我在帮助校友安装NumPy和SciPy时遇到了很多问题。 这两个 Python 包依赖于 Fortran 库 BLAS 和 LAPACK。 实验室机器上校友的用户没有sudo权限,所以无法通过系统的包管理器安装依赖库,只能一一编译安装。 经过苦苦寻找,终于在StackOverflow上找到了编译安装的方法。 现在重现CentOS6.4上的安装过程。
首先在homeowner目录下创建src目录,然后切换到src目录进行操作。
mkdir ~/src
cd ~/src
安装BLAS
1.准备源码
wget http://www.netlib.org/blas/blas.tgz
tar zxf blas.tgz
cd BLAS-3.5.0/
2. 编译
如果是32位系统,使用GNU的g77或gfortran编译器进行编译:
g77 -O2 -fno-second-underscore -c *.f
gfortran -O2 -std=legacy -fno-second-underscore -c *.f
如果是64位系统centos源码编译环境,则使用GNU的g77或gfortran编译器进行编译:
g77 -O3 -m64 -fno-second-underscore -fPIC -c *.f
gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f
如果您使用的是 Intel 的 Fortran 编译器,则:
ifort -FI -w90 -w95 -cm -O3 -unroll -c *.f
注意:
3、后续工作
ar r libfblas.a *.o
ranlib libfblas.a
rm -rf *.o # 清理文件
export BLAS=~/src/BLAS-3.5.0/libfblas.a # 导出BLAS环境变量
安装LAPACK
1.准备源码
wget http://www.netlib.org/lapack/lapack.tgz
tar zxf lapack.tgz
cd lapack-3.6.0/
2. 编译
cp INSTALL/make.inc.gfortran make.inc # On Linux with lapack-3.2.1 or newer
make lapacklib
注意:在执行 makelapacklib 之前,请编辑 make.inc 文件并将 -fPIC 选项添加到 OPTS 和 NOOPT 设置中。 如果是64位系统centos源码编译环境,还需要添加-m64选项。 更改后,它看起来像这样:
FORTRAN = gfortran
OPTS = -O2 -frecursive -fPIC -m64
DRVOPTS = $(OPTS)
NOOPT = -O0 -frecursive -fPIC -m64
LOADER = gfortran
3、后续工作
make clean # 清理文件
export LAPACK=~/src/lapack-3.6.0/ # 导出LAPACK环境变量
参考