我想在我的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
任何人知道,如何讓這個庫的地方嗎?
嘗試編譯fftw3的共享庫,添加--enable-shared到配置調用,這應該避免PIC問題。另外不要忘記添加--enable-sse2(或--enable-avx)以獲得不俗的表現 – jtaylor
現在我得到 /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
使用--enable-threads構建以添加線程庫,同時您顯然需要可以使用--enable-single和--enable-long-double構建的所有變體。您必須配置,構建和安裝三次。 – jtaylor