我正在尝试在我的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
有人知道,如何让这个库到位?
答案 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)