4

我正在尝试在我的 CentOS 6.7 机器上升级 glibcxx。我按照这里给出的步骤做了。

现在,当我这样做时:

strings /opt/google/chrome/lib/libstdc++.so.6 | grep GLIBC

我列出了 GLIBCXX_3.4 到 GLIBCXX_3.4.22。

为了在我的 Syantaxnet 构建中使用这个文件,我创建了一个符号链接:

ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6

但我收到一个错误:

ln: creating symbolic link `/usr/lib64/libstdc++.so.6': File exists

编辑1:

我认为错误是因为文件名相同,并将 /opt/google/chrome/lib/libstdc++.so.6 重命名为 libstdc++.so.6_new。该命令仍然失败。

有人可以帮我解决这个问题吗?另外,这是错误的解决方案:

/usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/local/bin/bazel)
/usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/bin/bazel)
4

2 回答 2

8

我认为错误是因为相同的文件名

该错误告诉您/usr/lib64/libstdc++.so.6已经存在。

如果要替换它,请执行以下操作:

ln -sf /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6

或这个:

rm -f /usr/lib64/libstdc++.so.6
ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6

并将 /opt/google/chrome/lib/libstdc++.so.6 重命名为 libstdc++.so.6_new

那是完全错误的做法。在尝试修复它之前,您应该尝试了解错误告诉您的内容。

我将 /opt/google/chrome/lib/libstdc++.so.6 文件的内容复制到 /usr/lib64/libstdc++.so.6 并让它工作。

这有一个缺点:如果/opt/google/chrome/lib/libstdc++.so.6被更新,则副本/usr/lib64不会。您可能应该ln -sf改为执行上述操作。

于 2016-06-16T16:45:38.867 回答
1

对于 linux: 1. 首先检查 /etc/httpd/sites-enabled/ foder yoursite.conf 文件是否存在

  1. 如果可用,则先复制文件,然后

  2. 然后使用 rm yourfile.conf 删除默认 yoursite.conf

  3. 然后使用您的命令创建链接:例如:ln -s /etc/httpd/sites-available/yoursites.conf /etc/httpd/sites-enabled/yoursites.conf
于 2020-03-04T07:23:32.030 回答