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 で何が問題になっているのかわかりません。どんな助けでも大歓迎です。
〜ダグ