1

Ctypesを使用してfftw3に依存するpythonでac数値ライブラリを使用しようとしています。次のようなプログラムがあるとします。

    foo.cc:
    #include <fftw3.h>

    extern "C"{

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

次に、次を使用してこれをコンパイルします。

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

ctypes を使用して Python にロードしようとすると、正しくリンクされていないようです:

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

Python プリント:

   OSError: libfoo.so:
   undefined symbol: fftw_alloc_complex

最初は ./configure make make install でセットアップされた fftw 3.1 の新規インストールを使用していましたが、その後、ここで概説されているように「-fPIC」などのさまざまなオプションを使用して fftw を再コンパイルしようとしました。これにより、同じエラーメッセージが表示され、今はアイデアがありません。この同じ手順は、GSL のような外部ライブラリを使用する他のライブラリを Python にインポートするために機能していたため、FFTW3 で何が問題になっているのかわかりません。どんな助けでも大歓迎です。

〜ダグ

4

1 に答える 1

0

同僚のアドバイスに従って、fftw 関連のすべての dll を検索して手動で削除し、正しいフラグを使用して再度作成およびインストールしました-fpic。fftw アンインストール スクリプトは、以前のバージョンの fftw を完全には削除しないようです。

于 2012-05-01T02:35:40.047 に答える