Я пытаюсь использовать некоторые библиотеки Linux под FreeBSD/PC-BSD, и у меня есть некоторые сомнения относительно того, как работает бинарная совместимость Linux с FreeBSD.
Я установил необходимый модуль ядра для этой задачи с дополнительным пакетом linux_base, содержащим библиотеки Linux.
Сама библиотека называется libspotify, ее можно скачать здесь (для FreeBSD нет доступных сборок libspotify, поэтому необходимо использовать Linux): https://developer.spotify.com/technologies/libspotify/#скачать
Запуск этого фрагмента кода 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
, и я так и сделал: http://www.freebsd.org/doc/handbook/linuxemu-lbc-install.html#idp74327472
Но пока это не работает.
Итак, вопрос в следующем: бинарная совместимость с Linux предназначена только для исполняемых файлов Linux или также подходит для загрузки библиотек Linux внутри исполняемых файлов FreeBSD?
EDIT: я знаю, что это может потребовать изменения конфигурации компоновщика, как указано в ответе на этот аналогичный вопрос, но поскольку библиотека будет загружаться внутри скрипта Python, такой подход не кажется подходящим.
Заранее спасибо.