1

对于一个学校项目,我需要使用aubio库。但是,我在为 Windows 编译它时遇到了问题。

我从他的 git (0.4.0 alpha) 下载了最新的源代码。然后我使用 Cygwin 编译它,使用 --with-target-platform=win32 为 Windows 交叉编译它。顺便说一句,它使用waf。这工作没有任何错误。

下一步是将编译后的文件 (libaubio.dll.a) 复制到 MinGW 库文件夹。然后我想为模块编译 Python 包装器,但它显示 ld.exe 找不到 -laubio 错误。将 libaubio.dll.a 重命名为 libaubio.a 即可解决此问题,并且编译成功。

将其安装到 Python 文件夹中也可以完美运行。但问题就从这里开始了。尝试导入 aubio 时,出现此错误: ImportError: DLL load failed: Invalid access to memory location。

我不知道如何解决这个问题。有人可以帮忙吗?或者向我解释错误?提前致谢!

山德

PS。它在 OSX 和 Ubuntu 上都能完美编译。

4

1 回答 1

0

好吧,这可能不是适合您的解决方案,只是一个提示。ImportError: DLL load failed: Invalid access to memory location.我在尝试用 C 编写自己的 Python 扩展时遇到了同样的错误。平台:Windows 32 位。

这是一个真正的痛苦,因为在所有 Python 环境(Spyder、Notebook、普通控制台......)中,这个错误随机出现在交互模式和非交互模式中。我使用 MinGW 和 Python 的 distutils (command) 编译了我的代码python setup.py install。编译没有给出警告或错误,并将 pyd 文件生成到正确的目录。但是,当我尝试导入这个模块import examplepro 时,我的 Python 代码不规则地崩溃了(通常只有五分之一的导入模块尝试成功)。

奇怪的是,在另一台计算机上它工作得很好......好吧,最后我找到了解决方法 - 我下载了一个更新版本的 MinGW(在我使用 Qt SDK 分发包中的版本之前)并再次编译了模块。然后它不再崩溃。但是我没有找到任何系统的解决方案或解释。所以我可能与用于生成 pyd 文件的编译器有关(可能没有它的 DLL?我不知道确切)。

于 2013-10-07T07:06:23.057 回答