对于学校项目,我需要使用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加载失败:对内存位置的访问无效。
我不知道如何解决这个问题。有人可以帮忙吗?或者向我解释错误? 提前谢谢!
Xander的
PS。它在OSX和Ubuntu上完美编译。
答案 0 :(得分:0)
嗯,这可能不适合你,只是一个提示。 ImportError: DLL load failed: Invalid access to memory location.
我在尝试使用C语言编写自己的Python扩展时遇到了同样的错误:平台:Windows 32位。
这是一个真正的痛苦,因为在所有Python环境(Spyder,Notebook,普通控制台......)中,此错误在交互式和非交互式模式中随机出现。我使用MinGW和Python的distutils(命令python setup.py install
)编译了我的代码。编译没有发出警告或错误,并将pyd文件生成到正确的目录中。但是当试图导入这个模块import example
时,我的Python代码不规则地崩溃了(通常只有五分之一的尝试导入模块成功)。
奇怪的是,在另一台计算机上它工作得很好......好吧,最后我找到了解决方法 - 我下载了一个较新版本的MinGW(在我使用Qt SDK发行版中包含的版本之前)并再次编译模块。然后它没有更多的崩溃工作。但是我没有找到任何系统的解决方案或解释。所以我可能与编译器有关(可能没有它的DLL?我不确切知道)用于生成pyd文件。