首页 > 解决方案 > CentOS6 上重新编译的库与 Ubuntu 20.04 上的结果不同

问题描述

我在系统上安装了一个开源库Ubuntu 20.04(基本上在运行install.sh 它时会下载预编译的二进制文件),效果很好,但我需要这样的库才能工作CentOS6。问题是这个库最初不是为 RED HAT 系统编译的,所以我必须使用特定的 GLIBC 版本(即 2.12)从头开始,而预编译的库是用 GLIBC 2.14 或其他东西编译的。

我实际上设法重新编译它,但我没有得到与 Ubuntu 上相同的结果。怎么会,我能做些什么呢?

当我ldd在二进制文件(在我的 Ubuntu 系统上)上运行时,我得到以下信息:

linux-vdso.so.1 (0x00007ffe1b9f2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4928001000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4927fde000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4927fd8000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4927df6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4927ddb000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4927be9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4928168000)

当我ldd在为 CentOS 重新编译的二进制文件上运行时,我得到:

linux-vdso.so.1 =>  (0x00007ffd32fda000)
libm.so.6 => /lib64/libm.so.6 (0x00007fccb839d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fccb8180000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fccb7f7c000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fccb7c76000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fccb7a60000)
libc.so.6 => /lib64/libc.so.6 (0x00007fccb76cc000)
/lib64/ld-linux-x86-64.so.2 (0x00007fccb8621000)

任何帮助,将不胜感激。

我正在尝试在 CentOS6 系统上重新编译一个开源库

标签: c++linuxcentosredhat

解决方案


推荐阅读