1

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

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

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

我发现一些人有类似的问题,但不是真正的解决方案。我在这个线程中找到了一个提示,但我不知道在安装过程中我可以在哪里更改编译器标志。此外,我在 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 似乎代表我发现的 long-double,我可以使用 --enable-long-double。但现在我被困在:

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

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

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

任何人都知道,如何让这个图书馆到位?

4

2 回答 2

2

你必须从这里下载基本的 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

于 2016-09-21T19:07:18.847 回答
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
于 2014-10-19T21:46:39.657 回答