CentOS 6环境编译的程序TestGcc在CentOS5环境运行时报错:
./TestGcc
./TestGcc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./TestGcc)
./TestGcc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./TestGcc)
./TestGcc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./TestGcc)
./TestGcc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./TestGcc)
造成此问题的原因是CentOS5环境中的gcc版本太低,如果不想升级gcc直接运行CentOS6编译的应用,可以参考下面的方法:
- 使用RPMFind找到所需的rmp包( libstdc++-4.4.1-2.fc11.x86_64.rpm 对应于CentOS 6默认gcc版本 )
- 下载rpm文件,使用rpm2cpio libstdc++-4.4.1-2.fc11.x86_64.rpm | cpio -i --make-directories解包
- 将libstdc++.so.6.0.12复制到应用程序目录,重命名为libstdc++.so.6。
- 修改LD_LIBRARY_PATH指向libstdc++.so.6所在目录。