【发布时间】:2017-12-29 08:40:28
【问题描述】:
我已经在我的机器上安装了 GCC 7.1 并尝试在其上使用 g++,但它不起作用,说:
g++: /lib64/libc.so.6: version `GLIBC_2.11` not found (required by g++)
然后我做了这些:
$ strings /lib64/lib.so.6 | grep GLIB
GLIBC_2.2.5
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_PRIVATE
$ strings `which g++` | grep GLIB
GLIBC_2.3
GLIBC_2.11
GLIBC_2.2.5
这里有两点需要注意:
- 字符串
GLIBC_2.11不是这两个输出共有的。 - 但是,
GLIBC_2.3对两者都是通用的。
问题:
1. 这些字符串到底是什么意思?为什么它们中都有不止一个字符串?他们告诉我们什么?
2.我的猜测是libc 中没有GLIBC_2.11 解释了为什么g++ 不起作用,因为g++ 需要它(正如错误所说的那样)。但是,我很困惑GLIBC_2.3 在两者中的存在实际上意味着什么?这是否意味着可以指示g++ 使用它而不是GLIBC_2.11?如果是这样,具体如何?命令是什么?
【问题讨论】:
-
您安装的 gcc 是为一个提供比您系统上的更新的 glibc 的系统构建的,试图让它在您的系统上工作并不是一个有趣的方式来度过一个周末的大部分时间- 你最好找到一个可以在你的系统上运行的包,或者从你系统上的源代码构建 gcc .7.1。