我正在尝试在 python 中使用 ac 数值库,该库依赖于使用 Ctypes 的 fftw3。假设我有一个如下所示的程序:
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
我最初使用的是全新安装的 fftw 3.1,使用 ./configure make make install 设置,但随后我尝试使用各种不同的选项(如此处概述的“-fPIC”)重新编译fftw。这给出了相同的错误消息,我现在没有想法了。同样的过程也适用于将其他库导入到以前使用 GSL 等外部库的 python 中,所以我不知道 FFTW3 出了什么问题。任何帮助将不胜感激。
〜道格