Python Ctypes和FFTW链接

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中时,它似乎没有正确链接:

我试图在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中时,它似乎没有正确链接:

   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