我正在尝试在 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
,我这样做了:
http ://www.freebsd.org/doc/handbook/linuxemu-lbc-install.html#idp74327472
但它还没有工作。
所以问题是: Linux 二进制兼容性仅适用于 Linux 可执行文件,还是也适用于在 FreeBSD 可执行文件中加载 Linux 库?
编辑:我知道这可能需要更改链接器配置,如对这个类似问题的回答所述,但由于该库将在 Python 脚本中加载,这似乎不是一个合适的方法。
提前致谢。