NumPy和SciPy。静态与动态加载

7

TLDR:我能否使用静态ATLAS/LAPACK库与NumPy和SciPy一起使用?

背景:

使用以下命令构建带有LAPACK的ATLAS:

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下找到了以下文件:
Make.inc@  
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/lib 添加到LD_LIBRARY_PATH 和在 NumPy 的 site.cfg 文件中将其添加到library_dirs 变量中。即使这些库是静态的,NumPy 和 SciPy 是否会使用我的库?
1个回答

2
您应该能够。添加
[DEFAULT]
search_static_first = true

将此代码添加到您的site.cfg文件中,您就可以开始使用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接