FreeBSD/PC-BSD でいくつかの Linux ライブラリを使用しようとしていますが、FreeBSD での Linux バイナリ互換性がどのように機能するかについて疑問があります。
このタスクに必要なカーネル モジュールと、Linux ライブラリを含む追加の linux_base パッケージをインストールしました。
ライブラリ自体は libspotify で、ここからダウンロードできます (FreeBSD で利用できる libspotify ビルドはないため、Linux ビルドを使用する必要があります): https://developer.spotify.com/technologies/libspotify/#download
この抜粋された Python コードを実行すると失敗します。
import ctypes
lib_path = './libspotify.so'
lib = ctypes.cdll.LoadLibrary(lib_path)
次のように述べています。
OSError: Shared object "libpthread.so.0" not found, required by "libspotify.so"
ハンドブックには、Linux バイナリは を使用してタグ付けする必要があると書かれていbrandelf
ます
。
しかし、まだ機能しません。
問題は、 Linux バイナリ互換性は Linux 実行可能ファイルのみに対応しているのか、それとも FreeBSD 実行可能ファイル内に Linux ライブラリをロードするのにも適しているのかということです。
編集:この同様の質問への回答に記載されているように、リンカー構成を変更する必要がある場合があることは承知していますが、ライブラリは Python スクリプト内に読み込まれるため、適切なアプローチではないようです。
前もって感謝します。