2012-04-30 8 views
1

私はCtthonを使ってfftw3に依存するPythonでCの数値ライブラリを使用しようとしています。のは、私はこのようになりますプログラムを持っているとしましょう:PythonのCtypとFFTWのリンク

foo.cc: 
    #include <fftw3.h> 

    extern "C"{ 

    void foo(){ 
    fftw_complex *result; 
    result = fftw_alloc_complex(1024*1024*1024); 
    } 

私は、この使用してコンパイルします。私は、ctypesのを使用してのpythonにそれをロードしようとすると、リンクされているようには見えない

icpc -O3 -fpic -c foo.cc -o foo.o 
    icpc -shared -o libfoo.so foo.o -lfftw3 

を適切:

import ctypes 
    lib = ctypes.cdll.LoadLibrary('libfoo.so') 

パイソンプリント:

OSError: libfoo.so: 
    undefined symbol: fftw_alloc_complex 
私が最初に ./configureを で設定FFTW 3.1の新規インストールを使用していた

は を作る をインストールしますが、hereを概説として、私はその後、「-fPIC」のようなさまざまなオプションの様々なFFTWを再コンパイルしようとしています。これにより、同じエラーメッセージが表示され、今はアイデアがありません。この同じ手順は、以前はGSLのような外部ライブラリを使用するPythonに他のライブラリをインポートするために働いていたので、FFTW3で何がうまくいかないのか分かりません。どんな助けでも大歓迎です。

〜ダグ

答えて

0

私は、その後行われ、正しいフラグ-fpicを使用して再度インストールし、検索して、手動でFFTW関連のDLLのすべてを削除した同僚の助言に。 fftwのアンインストールスクリプトは、以前のバージョンのfftwを完全に削除しないようです。

関連する問題