2011-07-04 23:22:36| 分类: linux&shell | 标签: |举报 |字号大中小 订阅
安装scipy时,要先安装lapack(包括了BLAS包)(http://fhqdddddd.blog.163.com/blog/static/186991542011646102822/)
和ATLAS包,ATLAS安装如下:
tar -xzvf ATLAS3.9.41.tar.gz
cd ATLAS
mkdir build
cd ~/ATLAS/build
atlas3.9.41+lapack-3.2.2
../configure -b 64 -Fa alg -fPIC --with-netlib-lapack-tarfile=/home/SCE/zhaolei/lapack-3.2.2.tgz -Si cputhrchk 0 -Ss kern /home/SCE/zhaolei/gcc-4.5.3/bin/gcc --prefix=/home/SCE/zhaolei/local
(在ATLAS的子目录即ATLAS3.9.41中执行命令
--with-netlib-lapack-tarfile 这个参数 为了安装lapack,如果前面没有安装lapack
-Si cputhrchk 0, 忽略cpu节能)
注意路径 要用 绝对路径
make shared (产生动态库)
cd build
make install
但是这样安装了以后,只产生了一个动态库 libsatlas.so 而libblas.so,liblapack.so动态库没有
所以 要 再新安装 3.9.32版本
要将3.9.41版本 atlas build / lib下的Makefile替换成3.9.32的build / lib下的Makefile 同时 要修改Makefile文件中DESTDIR和VER=3.9.41 。
1. 修改Makefile 文件
我的 3.9.32版本的是在 /home/SCE/zhaolei/software/ATLAS下面编译的,所以 它的
DESTDIR= /home/SCE/zhaolei/software/ATLAS
而 3.9.41 版本是在 /home/SCE/zhaolei/ATLAS下面编译的,所以 它的
DESTDIR= /home/SCE/zhaolei/local/ (即前面安装3.9.41时的 --prefix= 相同)
所以,将3.9.41版本 atlas build / lib下的Makefile替换成3.9.32的build / lib下的Makefile 同时 要修改Makefile文件中DESTDIR。
重编译动态库
cd build/lib
make shared
2. 有可能还有如下错误( 也可以先看一下
F77SYSLIB = -L/home/SCE/zhaolei/gcc-4.5.3/lib/../lib64 -lgfortran
指向的目录中 有没有 libfortran.so*这样的文件,有的话,就是对的。如果没有,这时就要修改了。)
ld: cannot find -lgfortran
make[1]: *** [libf77blas.so] Error 1
这个主要是 找不到你的gcc下libfortran.so*的位置
3.这时 要修改3.9.41版本 /build/lib下面的make.inc
修改 F77SYSLIB= ......................... -lgfortran 让它指向你的 libfortran.so*的所在目录
另外一种方法:
也可以 用 -lgfortranbegin 替换 -lgfortran
我的修改成下面这样:
F77SYSLIB = -L/home/SCE/zhaolei/gcc-4.5.3/lib64 -lgfortran
另外一种方法的修改:
F77SYSLIB =-L/home/SCE/zhaolei/gcc-4.5.3/lib/gcc/x86_64-unknown-linux-gnu/gcc-4.5.3 -l gfortranbegin再
make shared
还有错误
ATL_FreeAtomicCount_mut.c:(.text+0x0): multiple definition of `ATL_FreeAtomicCount'
评论