2014-07-18 8 views
1

지금 내 Opensuse 13.1 x86_64에 pyFFTW를 설치하려고하는데 며칠 동안 문제가 계속되고 있습니다. pyFFTW를 처음 설치할 때 일부로 인해 설치할 수 없었습니다. fftw의 라이브러리가 누락되었습니다. 소스에서 fftw를 설치하는 것이 가장 좋음을 알게되었습니다.pyFFTW 설치 -> -lfftw3_threads를 찾을 수 없습니다.

이 누락 된 라이브러리의 문제를 해결하지만 소스 또는 설치에 주사위를 사용하여 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 

가 눈에 띄는 것 같다 내가 공동 것을, 내가 찾은 긴 배 uld는 --enable-long-double을 사용합니다.

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

누구 방법 대신에이 라이브러리를 얻을 알고 :

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

나의 현재 ./configure를 보인다는 이것이다 :하지만 지금은 함께 붙어 있어요?

+1

fftw3의 공유 라이브러리를 컴파일하려고하면 --enable-shared를 추가하십시오. configure 호출에는 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

답변

0

그리고 pip install [OS X 10.9.5]을 호출하는 방법에 대한 세부 사항을 추가 할 수 있습니다 : 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 

소스 다음과 같이

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