1

学校のプロジェクトでは、 aubioライブラリを利用する必要があります。ただし、Windows 用にコンパイルするには問題があります。

彼の git (0.4.0 alpha) から最新のソースをダウンロードしました。次に、Cygwin を使用してコンパイルし、 --with-target-platform=win32 を使用して Windows 用にクロスコンパイルしました。ちなみにwafを使っています。これはエラーなしで機能します。

次のステップは、コンパイルされたファイル (libaubio.dll.a) を MinGW ライブラリ フォルダーにコピーすることです。次に、モジュールの Python ラッパーをコンパイルしたいのですが、ld.exe cannot find -laubio エラーが表示されます。libaubio.dll.a の名前を libaubio.a に変更すると、これが解決され、コンパイルが成功します。

Pythonフォルダーにインストールすることも完全に機能します。しかし、ここから問題が始まります。aubio をインポートしようとすると、次のエラーが表示されます: ImportError: DLL の読み込みに失敗しました: メモリの場所へのアクセスが無効です。

この問題を解決する方法がわかりません。誰でも助けることができますか?または、エラーを説明してください。前もって感謝します!

ザンダー

PS。OSX と Ubuntu の両方で完全にコンパイルされます。

4

1 に答える 1

0

まあ、これはあなたにとって正しい解決策ではないかもしれませんが、単なるヒントです。ImportError: DLL load failed: Invalid access to memory location.C でプログラムされた Python の独自の拡張機能を作成しようとしたときに、同じエラーが発生しました。プラットフォーム: Windows 32 ビット。

このエラーは、すべての Python 環境 (Spyder、ノートブック、プレーン コンソールなど) の非対話モードだけでなく、対話モードでもランダムに表示されたため、本当に苦痛でした。MinGW と Python の distutils (command) を使用してコードをコンパイルしましたpython setup.py install。コンパイルでは警告やエラーは発生せず、正しいディレクトリに pyd ファイルが生成されました。しかし、このモジュールimport exampleを私の Python コードにインポートしようとすると、不規則にクラッシュしました (通常、モジュールのインポートは 5 回に 1 回しか成功しませんでした)。

奇妙なことに、別のコンピューターでは問題なく動作していました...まあ、最終的に回避策を見つけました-MinGWの新しいバージョンをダウンロードし(Qt SDKディストリビューションにパックされたバージョンを使用する前に)、モジュールを再度コンパイルしました。その後、クラッシュすることはなくなりました。しかし、体系的な解決策や説明は見つかりませんでした。そのため、pyd ファイルの生成に使用されたコンパイラ (DLL がない可能性がありますか? 正確にはわかりません) と関係がある可能性があります。

于 2013-10-07T07:06:23.057 に答える