提问人:ipcamit 提问时间:10/31/2023 更新时间:10/31/2023 访问量:35
如何在 Linux 上将 libc 的高级版本与我的二进制文件打包在一起
How to pack advanced version of libc with my binary on Linux
问:
我正在编写一个科学库,它使用酶来生成衍生物,并将所有内容捆绑在一个二进制共享文件中。为了在 Linux x86_64 上分发它,我使用 patchelf 将它与我的系统 libc 一起打包并给出适当的 rpath。我已经在版本低于我的系统的 Linux 系统上进行了测试,并且链接 libc 工作正常。
但是,当我在 Linux ppc64le Power9 CPU 上尝试相同的方法时,首先在 docker 容器 (clang 12.0.1) 中使用 libc 2.28 进行编译,然后在带有 libc 2.17 的 HPC 上修补并运行它,我收到以下错误:
./libdescriptor.so: /lib64/ld64.so.2: version `GLIBC_2.22' not found (required by libdescriptor/./../libdescriptor.libs/libstdc++-c4342a24.so.6.0.25)
./libdescriptor.so: /lib64/ld64.so.2: version `GLIBC_2.23' not found (required by libdescriptor/./../libdescriptor.libs/libm-2-a7087b3e.28.so)
./libdescriptor.so: /lib64/ld64.so.2: version `GLIBC_2.23' not found (required by libdescriptor/./../libdescriptor.libs/libc-2-fde502c1.28.so)
./libdescriptor.so: /lib64/ld64.so.2: version `GLIBC_2.22' not found (required by libdescriptor/./../libdescriptor.libs/libc-2-fde502c1.28.so)
我做错了什么?2.23 和 2.22 glibc 从何而来?
答: 暂无答案
评论
libc.so.6