ksk*_*skp 3 linux symlink centos6 syntaxnet
我正在尝试在我的 CentOS 6.7 机器上升级 glibcxx。我做了这里给出的步骤。
现在,当我这样做时:
strings /opt/google/chrome/lib/libstdc++.so.6 | grep GLIBC
Run Code Online (Sandbox Code Playgroud)
我列出了 GLIBCXX_3.4 到 GLIBCXX_3.4.22。
为了在我的 Syantaxnet 构建中使用这个文件,我创建了一个符号链接:
ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
ln: creating symbolic link `/usr/lib64/libstdc++.so.6': File exists
Run Code Online (Sandbox Code Playgroud)
编辑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)
Run Code Online (Sandbox Code Playgroud)
我认为错误是因为文件名相同
错误告诉你/usr/lib64/libstdc++.so.6
已经存在。
如果要更换它,请执行以下操作:
ln -sf /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)
或这个:
rm -f /usr/lib64/libstdc++.so.6
ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)
并将 /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
改为执行上述操作。