我需要在Centos 6版本上安装GLIBCXX 3.4.15(以便在Steam上运行用于游戏的服务器)。我在Google周围搜索,并在几个网站上安装了一些程序,这些程序在出现错误的地方显示需要3.4.15(LoadLibrary ERROR: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found
),但他们只是使用了一种绕过/不安装的方法。当我这样做时strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
,这是输出:
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
那么,如何在Centos 6上直接安装GLIBCXX 3.4.15?
我会认为这是一种黑客攻击,但是在我不愿意承认的情况下,使用它的次数超过了我想解决的GLIBC兼容性问题,例如您遇到的问题。
黑客涉及建立一个链接,/usr/lib
其中包含特定工具想要的库的名称。然后,链接指向库的备用名称。
假设我想创建一个指向的链接libstdc++.so.6
。
$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6 -> libstdc++.so.6.0.14
-rwxr-xr-x 1 root root 950428 Sep 24 2010 libstdc++.so.6.0.14
结果是这样的:
$ ln -s libstdc++.so.6 libstdc++.so.6.0.15
检查结果:
$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6 -> libstdc++.so.6.0.14
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6.0.15 -> libstdc++.so.6.0.14
-rwxr-xr-x 1 root root 950428 Sep 24 2010 libstdc++.so.6.0.14
但是我不确定此方法是否可以使用,因为您的库仍然缺少版本字符串GLIBCXX_3.4.15
。
如果破解不成功,则您可能不得不硬着头皮,将GLIBC安装在备用目录中,然后覆盖LD_LIBRARY_PATH
或,LD_PRELOAD
以便执行Steam即可看到修改后的库。
$ LD_PRELOAD='mylibc.so anotherlib.so' program
在SO问答中,有关如何执行此操作的详细信息在此进行了更多介绍:单个主机上有多个glibc库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句