安装 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查看文件属性