没有找到GLIBC_2.18但是在本地构建中

时间:2016-05-03 11:24:52

标签: c++ linux gcc dynamic-linking

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

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

我还使用本地构建编译器, gcc 4.9.3 4.8.5 安装在我的机器上。

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

对于依赖项/ 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?如果是这种情况,我该如何更改?或者情况并非如此,我错了?这不会让人感到惊讶,因为我不了解这些链接器问题。

1 个答案:

答案 0 :(得分:0)

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