【问题标题】:GLIBC_2.18 not found but here in local-buildGLIBC_2.18 未找到,但在本地构建中
【发布时间】:2016-05-03 11:24:52
【问题描述】:

我正在尝试使用一个名为 libai_driver_rhf.so 的库,我使用 local-build 库 编译该库以在服务器上使用它,而无需安装所需的依赖项。但是当我运行命令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 安装在我的机器上。

我不知道这是否与错误有关,但这里是在我的本地库和我的机器库上执行字符串时 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 ?如果是这种情况,我该如何更改?或者事实并非如此,我错了?这不足为奇,因为我不了解这些链接器问题。

【问题讨论】:

    标签: c++ linux gcc dynamic-linking


    【解决方案1】:

    我从rpmfind.net 下载了正确的构建,它可以工作,看来我自己构建的库没有正确构建。

    【讨论】:

    • 这是一个很好的问题,我不记得了……我想我只是在寻找使用与我使用的相同 GCC 构建的正确版本(如依赖项中所建议的那样)
    • 我打开http://rpmfind.net/并搜索,但结果是服务不可用,如果您记得,请更新您的答案。谢谢你
    • 网站似乎已关闭。在这一点上,我无法为你做任何事情。
    猜你喜欢
    • 2022-01-20
    • 2019-08-17
    • 2018-03-09
    • 1970-01-01
    • 2021-01-05
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多