在 RedHat 上安装软件时出现 libstdc++ 依赖错误

在 RedHat 上安装软件时出现 libstdc++ 依赖错误

我意识到这个问题已经被问过多次了,但在阅读了回复后,我仍然无法得到它。

我正在尝试安装名为奥维托在 RedHat Enterprise 7 上出现以下错误:

[adam@pc bin]$ sudo ./ovito
[sudo] password for adam: 
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libGui.so)
./ovito: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libCore.so)
./ovito: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libCore.so)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Concurrent.so.5)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Widgets.so.5)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Gui.so.5)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Network.so.5)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Core.so.5)
./ovito: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/adam/Downloads/ovito-2.9.0-x86_64/bin/../lib/ovito/libQt5Core.so.5)

我安装了最新的 libstdc++ 软件包,如本文第一个答案中所建议的:

libX11.so.6 未找到

结果:

[root@pc bin]# yum -y install libstdc++
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Package libstdc++-4.8.5-16.el7.x86_64 already installed and latest version
Nothing to do

我尝试修复 simlinks(?),正如此处大多数 StackExchange 答案中所建议的那样。我按照 gnu.org 的命令进行操作:

https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths

以及本文第一个答案的命令:

https://stackoverflow.com/questions/20357033/how-to-fix-program-name-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxx

最后,我尝试了以下方法:

1

LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

2

export LD_LIBRARY_PATH=${prefix}/lib64:$LD_LIBRARY_PATH

...

和其他组合。让我困惑的是,有一条/usr/local/lib64路,而且似乎是一条computer/lib64路。


这篇文章为有类似问题的人提供了 RedHat Enterprise 版本 5 和 6 的脚本,但不包括 RedHat/RHEL 7:

RHEL 5 64 位系统上的 GLIBCXX_3_4_9 库的应用程序需要 libstdc++

(并不是说我还不知道如何运行脚本)

答案1

我给这个特定程序的软件开发人员(Ovito)发了电子邮件,他给了我以下说明:

下载并解压 OVITO 的先前版本,版本 2.8.2:

http://ovito.org/download/

在 lib/ovito/ 目录中,您将找到两个名为 stdlibc++.* 的文件,将它们复制到较新的 OVITO 软件包 (v2.9.0) 中的同一位置。然后尝试运行它。

这个 stdlibc++ 库正是 OVITO 需要的版本。但它不再包含在二进制包中,因为在某些系统上它会导致与OpenGL图形驱动程序发生冲突,而OpenGL图形驱动程序需要系统的libstdc++版本。

按照这些说明操作后,Ovito 2.9.0 已正确安装。

相关内容