我正在使用 AlpineLinux(安装在我的计算机上,而不是安装在 docker 中),并且我正在尝试使用依赖于 glibc 的共享库。
由于 Glibc 没有集成到这个发行版中,我看到gcompat
开发了一个替代方案 ,以提供与为 Glibc 构建的程序的兼容性。
我要使用的库是 IDS Imaging 的驱动程序(用于他们的相机)。动态加载.so
with CDLL
(从 python 脚本)时,它会失败。
失败后,我跑去ldd libueye_api.so
检查是否找到了所有依赖项,我得到了:
/lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7fb684d93000)
librt.so.1 => /lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
libdl.so.2 => /lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
libpthread.so.0 => /lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
libgomp.so.1 => /usr/lib/libgomp.so.1 (0x7fb684d51000)
libm.so.6 => /lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7fb684d38000)
libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7fb685c50000)
ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7fb684d32000)
Error relocating libueye_api.so: __pthread_register_cancel: symbol not found
Error relocating libueye_api.so: __pthread_unregister_cancel: symbol not found
在此日志中,我看到 musl 和 gcompat 已成功找到__pthread_register_cancel
,__pthread_unregister_cancel
但未找到...
有人有解决这个问题的想法吗?