pyFFTW安装 - >找不到-lfftw3_threads

问题描述:

我想在我的Opensuse 13.1 x86_64上安装pyFFTW几天,现在一直在运行一些问题: 由于某些原因,我无法首次安装pyFFTW缺少fftw的库。我发现从源代码安装fftw是最好的,然后我做了。pyFFTW安装 - >找不到-lfftw3_threads

这解决了缺少库的问题,而是一个不同的问题出现了,当我尝试无论是从源或使用PIP进行安装建设pyFFTW:

/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-共享,使作为配置标志的

/ ... /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浮子标志,它减少了错误消息:

/ ... /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 

由于后缀升似乎静置长一倍我发现,我共同使用--enable-long-double。但现在我坚持:

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

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

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

任何人知道,如何让这个库的地方吗?

+1

尝试编译fftw3的共享库,添加--enable-shared到配置调用,这应该避免PIC问题。另外不要忘记添加--enable-sse2(或--enable-avx)以获得不俗的表现 – jtaylor

+0

现在我得到 /usr/lib64/gcc/x86_64-suse-linux/4.8/../../ ../../x86_64-suse-linux/bin/ld:找不到-lfftw3f /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64- suse-linux/bin/ld:找不到-lfftw3l /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../ ../ x86_64-suse-linux/bin/ld:找不到-lfftw3_threads /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:找不到-lfftw3f_threads /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld:找不到-lfftw3l_threads 当通过pip安装pyfftw时: -/ – freeone

+0

使用--enable-threads构建以添加线程库,同时您显然需要可以使用--enable-single和--enable-long-double构建的所有变体。您必须配置,构建和安装三次。 – jtaylor

我可以添加一个关于如何调用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 

你必须从here下载基本FFTW包装和打造这个3倍,如下所示:你选择解压存档

$ cd ~/bin/fftw-3.3.5 

或其他目录,

$ ./configure --enable-threads --enable-shared 
$ make 
$ sudo make install 
$ ./configure --enable-threads --enable-shared --enable-float 
$ make 
$ sudo make install 
$ ./configure --enable-threads --enable-shared --enable-long-double 
$ make 
$ sudo make install 

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