我意识到这个问题已经被问过多次了,但在阅读了回复后,我仍然无法得到它。
我正在尝试安装名为奥维托在 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++ 软件包,如本文第一个答案中所建议的:
结果:
[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
以及本文第一个答案的命令:
最后,我尝试了以下方法:
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:
在 lib/ovito/ 目录中,您将找到两个名为 stdlibc++.* 的文件,将它们复制到较新的 OVITO 软件包 (v2.9.0) 中的同一位置。然后尝试运行它。
这个 stdlibc++ 库正是 OVITO 需要的版本。但它不再包含在二进制包中,因为在某些系统上它会导致与OpenGL图形驱动程序发生冲突,而OpenGL图形驱动程序需要系统的libstdc++版本。
按照这些说明操作后,Ovito 2.9.0 已正确安装。