MinGW32
Windows PCで使用して、 pySpotifyをコンパイルしようとしています。最初のエラーは、それlibspotify/api.h
が見つからないことでした。適切なフォルダーをlibspotifyから にコピーして、これを修正しました。ただし、現在、バイナリ配布は失敗しており、それらをどこに配置しても(pySpotify フォルダー/サブフォルダー、一時ビルド フォルダー/サブフォルダー、および MinGW フォルダー/サブフォルダー)、または名前(.a、.o、および .so)に関係なく、それそれでも同じエラーメッセージが表示されます。C:\MinGW\include
dllwrap
ld linking.
Spotify
libspotify.dll
libspotify.lib.
関連するエラーは次のとおりです。
C:\MinGW\bin\dllwrap.exe -mdll -static --output-lib build\temp.win32-2.7\Release\src\lib_spotify.a --def build\temp.win32-2.7\Release\src\_spotify.def -s build\temp.win32-2.7\Release\src\module.o build\temp.win32-2.7\Release\src\session.o build\temp.win32-2.7\Release\src\link.o build\temp.win32-2.7\Release\src\track.obuild\temp.win32-2.7\Release\src\album.o build\temp.win32-2.7\Release\src\albumbrowser.o build\temp.win32-2.7\Release\src\artist.o build\temp.win32-2.7\Release\src\artistbrowser.o build\temp.win32-2.7\Release\src\search.o build\temp.win32-2.7\Release\src\playlist.o build\temp.win32-2.7\Release\src\playlistcontainer.o build\temp.win32-2.7\Release\src\playlistfolder.o build\temp.win32-2.7\Release\src\image.o build\temp.win32-2.7\Release\src\user.o build\temp.win32-2.7\Release\src\pyspotify.o build\temp.win32-2.7\Release\src\toplistbrowser.o -LC:\Python26\libs -LC:\Python26\PCbuild -lspotify -lpython26 -lmsvcr90 -o build\lib.win32-2.7\spotify\_spotify.pyd
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot find -lspotify
collect2.exe: error: ld returned 1 exit status
dllwrap: gcc exited with status 1
error: command 'dllwrap' failed with exit status 1
bok は githubで次のように述べています。
インクルード パスに API ヘッダーを追加し (コンパイラ オプションに -I~\libspotify\include のようなものを追加します)、ライブラリ パスに共有ライブラリを追加する必要があります (リンカー オプションに -L~\libspotify\lib を追加します)。これにより、コンパイラは必要なインクルード ファイルを見つけ、リンカーは必要なバイナリ オブジェクトを見つけることができます。
ただし、distutils
Extension クラスは非推奨であり、ドキュメントを見つけるのが難しいようです (これは、カスタム コンパイラ オプションが必要な場所だと思います)。または類似のもの~
に変更する必要があるかもしれないことに感謝します。%USERPROFILE%
同様に、スタンザ%PYTHONPATH%\Lib\distutils\distutils.cfg
以外のドキュメントはほとんどありません。[build]
compiler=mingw32
これにより、コンパイル/リンク コマンドとそのオプションの編集が変更できなくなります。
WindowsでpySpotifyをどのようにコンパイルしますか?
編集:
Python 2.6 を使用し、libspotify.dll/libspotify.lib を C:\Python26\PCbuild にコピーして名前を spotify.dll/libspotify.lib に変更すると、ld から別のエラー メッセージが表示されます。
C:\MinGW\bin\dllwrap.exe -mdll -static --output-lib build\temp.win32-2.6\Release\src\lib_spotify.a --def build\temp.win32-2.6\Release\src\_spotify.def -s build\temp.win32-2.6\Release\src\module.o build\temp.win32-2.6\Release\src\session.o build\temp.win32-2.6\Release\src\link.o build\temp.win32-2.6\Release\src\track.obuild\temp.win32-2.6\Release\src\album.o build\temp.win32-2.6\Release\src\albumbrowser.o build\temp.win32-2.6\Release\src\artist.o build\temp.win32-2.6\Release\src\artistbrowser.o build\temp.win32-2.6\Release\src\search.o build\temp.win32-2.6\Release\src\playlist.o build\temp.win32-2.6\Release\src\playlistcontainer.o build\temp.win32-2.6\Release\src\playlistfolder.o build\temp.win32-2.6\Release\src\image.o build\temp.win32-2.6\Release\src\user.o build\temp.win32-2.6\Release\src\pyspotify.o build\temp.win32-2.6\Release\src\toplistbrowser.o -LC:\Python26\libs -LC:\Python26\PCbuild -lspotify -lpython26 -lmsvcr90 -o build\lib.win32-2.6\spotify\_spotify.pyd
_spotify.exp: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
dllwrap: gcc exited with status 1
error: command 'dllwrap' failed with exit status 1