GLIBC_2.18 未找到,但在本地构建中

GLIBC_2.18 not found but here in local-build

我正在尝试使用一个名为 libai_driver_rhf.so 的库,我用 local-build libraries 编译它来使用它在服务器上无需安装所需的依赖项。但是当我 运行 命令 ldd libai_driver_rhf.so | grep "not found" 时,我得到这个:

./libai_driver_rhf.so: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/k.masson/Documents/nuke/nuke_plugin_test/src/dependencies/lib64/libstdc++.so.6)

我之前有更多未发现的错误,但我通过为我的计算机下载正确的库并将它们放入依赖项文件夹来修复它们。我还有另一个更高的 GLIBC not found 错误,之前我通过下载 libstdc++.so.6 并将其放入 dependencies/lib64.

来修复

我也使用本地编译器,我的机器上安装了 gcc 4.9.34.8.5

我不知道这是否有 link 错误,但这是在我的本地库和机器库上执行字符串时 grep "GLIBC" 的结果。

对于dependencies/lib/libc.so.6:

[k.masson@hauser24 src]$ strings dependencies/lib/libc.so.6 | grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_PRIVATE
__sys_nerr_GLIBC_2_4
__sys_nerr_GLIBC_2_3
__sys_nerr_GLIBC_2_1
__sys_nerr_GLIBC_2_0
__sys_errlist_GLIBC_2_4
__sys_errlist_GLIBC_2_1
__sys_errlist_GLIBC_2_3
__sys_errlist_GLIBC_2_0
___sys_nerr_GLIBC_2_3
___sys_nerr_GLIBC_2_4
___sys_nerr_GLIBC_2_0
___sys_nerr_GLIBC_2_1
.................................... much more

对于dependencies/lib64/libstdc++.so.6:

[k.masson@hauser24 src]$ strings dependencies/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

对于/usr/lib/libstdc++.so.6:

[k.masson@hauser24 src]$ strings /usr/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.0
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

我的 LD_LIBRARY_PATH 看起来像这样:

[k.masson@hauser24 src]$ echo $LD_LIBRARY_PATH
/home/k.masson/gcc-4.9.3/lib:/home/k.masson/Documents/nuke/nuke_plugin_test/src/dependencies/lib64:/home/k.masson/Documents/nuke/nuke_plugin_test/src/dependencies/lib:/home/k.masson/Documents/nuke/nuke_plugin_test/src/dependencies/lib:

如我所见,不知道是不是真的,GLIBC_2.18不在/usr/lib/libstdc ++.so.6,这是否意味着 ldd 正在将 stdc 纳入 /usr/lib?如果是这种情况,我该如何更改?或者事实并非如此,我错了?这不足为奇,因为我不理解这些 linker 问题。

我从 rpmfind.net 下载了正确的版本并且它有效,似乎我自己构建的库没有正确构建。