1
我試圖在python中使用C數值庫,它依賴fftw3使用Ctypes。比方說,我有一個程序,看起來像這樣:Python Ctypes和FFTW鏈接
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的將其加載到蟒蛇,它似乎並不有聯繫正確:
import ctypes
lib = ctypes.cdll.LoadLibrary('libfoo.so')
Python的打印:
OSError: libfoo.so:
undefined symbol: fftw_alloc_complex
我最初使用新安裝的FFTW 3.1設置與 的./configure 使 make install的 但我後來試圖用各種不同的選項,如「-fPIC」作爲概括here FFTW重新編譯。這給出了一個相同的錯誤信息,我現在已經沒有想法了。這同樣的過程已經用於將其他庫導入python,之前使用外部庫如GSL,所以我不知道FFTW3出了什麼問題。任何幫助將不勝感激。
〜道格