pyFFTW安装 - >找不到-lfftw3_threads

时间:2014-07-18 22:42:12

标签: python pyfftw

我正在尝试在我的Opensuse 13.1 x86_64上安装pyFFTW几天,并且一直遇到一些问题: 由于缺少fftw库,我无法第一次安装pyFFTW。我发现从源头安装fftw是最好的,然后我做了。

这解决了库丢失的问题,但当我尝试从源代码构建pyFFTW或使用pip进行安装时,会出现不同的问题:

/usr/local/lib64/libfftw3.a: could not read symbols: Bad value

我找到了一些有类似问题的人,但不是真正的解决方案。我在this线程中找到了一个提示,但我无法弄清楚,在安装过程中我可以更改编译器标志。此外,我在fftw配置过程的日志中找到了:

checking for gfortran option to produce PIC... -fPIC
checking if gfortran PIC flag -fPIC works... yes

有什么想法吗?

谢谢!

修改

我尝试使用--enable-shared并启用配置标志

/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3f 
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3l 
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3_threads 
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3f_threads 
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3l_threads

然后我做了一些研究,发现./configure可以有一个--enable-float标志,它将错误信息减少到:

/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3l
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3_threads
/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3l_threads

由于后缀l似乎代表长双,我发现,我可以使用--enable-long-double。但现在我坚持:

/ ... /x86_64-suse-linux/bin/ld: cannot find -lfftw3_threads

我当前的./configure看起来是这样的:

./configure --enable-long-double --enable-threads --enable-openmp --enable-shared

有人知道,如何让这个库到位?

2 个答案:

答案 0 :(得分:0)

我可以添加一个关于如何调用pip install [OS X 10.9.5]的详细信息:它应该读取这样的内容,以便找到所有3个FFTW的安装。

rollett$ sudo CPATH=/Users/Shared/fftw334single/include/
LIBRARY_PATH=/Users/Shared/fftw334single/lib/:/Users/Shared/fftw334/lib/:/Users/Shared/fftw334long/lib/ 
pip install pyFFTW

答案 1 :(得分:0)

你必须从here下载基本的FFTW包并按如下方式构建3次:

frmMain

或您选择解压缩归档的其他目录,

$ cd ~/bin/fftw-3.3.5

来源:https://github.com/pyFFTW/pyFFTW/issues/70