找不到libstdc++.so.5的解决方法


安装 IBM Tivoli Workload Scheduler时报错:/usr/lib下找不到libstdc++.so.5

# yum whatprovides libstdc++.so.5

查找发现,libstdc++.so.5包含在安装包compat-libstdc++-33

# yum install compat-libstdc++-33

可以进行安装

但是安装包有两种:

compat-libstdc++-33.i686 : Compatibility standard C++ libraries
compat-libstdc++-33.x86_64 : Compatibility standard C++ libraries

我是64位的rhel,选择安装x86_64包

安装完成后发现解决了一部分问题,有的依然进行报错

find -name libstdc++.so.5

发现/usr/lib64下已经有了这个文件

ls -l libstdc++.so.5

/usr/lib64/libstdc++.so.5 -> libstdc++.so.5.0.7

目标是个link文件

cd /usr/lib

link -s /usr/lib64/libstdc++.so.5.0.7 libstdc++.so.5

进入到目标目录,即无法查找到lib文件所在的位置

创建源文件到local的软连接

至此,问题搞定

------------------------------------------------------------

Afterword: 

    1.查看i686发现,这是i386的优化版,实际上安装这个包,不设定软连接即可解决问题

    2.观察报错信息,给出缺失文件位置/usr/lib即可看出缺失的是i386(即32位)的库文件

    3.编译出问题时,考虑下是否gcc等三个运行库是否安装/支持

    4.某论坛有人提示:在/usr/lib/目录下,搜索libstdc++可以看到libstdc++.so.5和libstdc++.so.6等链接库文件。但是libstdc++.so.5是打了叉的,说明libstdc++.so.5的权限有问题,用chmod 755即可解决该问题!

    5.很多问题是因为权限问题造成的,多用ls -l查看文件属性

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM