Python Ctypes和FFTW链接
我试图在python中使用一个c数字库,它依赖于使用Ctypes的fftw3。假设我有一个类似这样的程序:Python Ctypes和FFTW链接,ctypes,dynamic-linking,fftw,Ctypes,Dynamic Linking,Fftw,我试图在python中使用一个c数字库,它依赖于使用Ctypes的fftw3。假设我有一个类似这样的程序: foo.cc: #include <fftw3.h> extern "C"{ void foo(){ fftw_complex *result; result = fftw_alloc_complex(1024*1024*1024); } 当我尝试使用ctypes将其加载到python中时,它似乎没有正确链接:
foo.cc:
#include <fftw3.h>
extern "C"{
void foo(){
fftw_complex *result;
result = fftw_alloc_complex(1024*1024*1024);
}
当我尝试使用ctypes将其加载到python中时,它似乎没有正确链接:
import ctypes
lib = ctypes.cdll.LoadLibrary('libfoo.so')
Python打印:
OSError: libfoo.so:
undefined symbol: fftw_alloc_complex
我最初使用的是新安装的fftw 3.1,它是由
/配置
制作
安装
但我随后尝试使用各种不同的选项重新编译fftw,如所述的'-fPIC'。这给出了一个相同的错误信息,我现在没有主意了。同样的过程也适用于将其他库导入到python中,这些库使用的是像GSL一样的外部库,所以我不知道FFTW3出了什么问题。任何帮助都将不胜感激
~Doug在一位同事的建议下,我搜索并手动删除了所有与fftw相关的DLL,然后使用正确的标志(fpic)重新制作和安装。fftw卸载脚本似乎没有完全删除fftw的早期版本
OSError: libfoo.so:
undefined symbol: fftw_alloc_complex