2013-04-18 56 views
7

TLDR:我可以使用靜態ATLAS/LAPACK庫與NumPy & SciPy?NumPy和SciPy。靜態與動態加載

背景:

與下列建設ATLAS與LAPACK後:

wget http://sourceforge.net/projects/math-atlas/files/Stable/3.10.1/atlas3.10.1.tar.bz2/download 
wget http://www.netlib.org/lapack/lapack-3.4.2.tgz 
tar -jxvf atlas3.10.1.tar.bz2 
mkdir BUILD 
cd BUILD 
../ATLAS/configure -b 64 -Fa alg -fPIC \ 
    --with-netlib-lapack-tarfile=../lapack-3.4.2.tgz \ 
    --prefix=<ATLAS_INSTALL_PATH> 
make 
cd lib 
make shared 
make ptshared 
cd .. 
make install 

BUILD/lib下的下列文件:

[email protected] 
Makefile 

.a文件:

libatlas.a  
libcblas.a  
libf77blas.a  
libptf77blas.a 
libtstatlas.a 
liblapack.a  
libf77refblas.a 
libptlapack.a 
libptcblas.a  

.so文件:

libsatlas.so* 
libtatlas.so* 

我的第一個問題是,爲什麼不讓我已經.so(動態共享庫)文件lapackcblas

我的第二個問題是,NumPy使用以下兩個文件中的哪一個?

libsatlas.so* 
libtatlas.so* 

最後,如果我定義:

BLAS=/path_to_BUILD/lib/libcblas.a 
LAPACK=/path_to_BUILD/lib/liblapack.a 
ATLAS=/path_to_BUILD/lib/libatlas.a 

,並添加/path_to_BUILD/libLD_LIBRARY_PATH並向site.cfg文件中與NumPy內library_dirs變量。 NumPy和SciPy會使用我的庫嗎? (即使它們是靜態的?)。

回答

2

您應該可以。添加

[DEFAULT] 
search_static_first = true 

到您的site.cfg文件,你應該很好去。