> CentOS > CentOS故障 >

`CXXABI_1.3.8' not found和`GLIBCXX_3.4.20' not found

  一直使用的Android Studio自带的Android虚拟机,但是众所周知,自带的虚拟机慢的可以,于是决定换成火箭速度般的Genymotion。

安装了Genymotion2.8和VirtualBox5.1,这两样安装起来倒是很快,但是一运行Genymotion就出了如下问题。

       好嘛,那出了问题就解决呗。进入 /lib64 使用命令 strings libstdc++.so.6 | grep CXXABI 和 strings libstdc++.so.6 | grep GLIBCXX 查了一下,还真的是没有 CXXABI_1.3.8 和 GLIBCXX_3.4.20 ,要解决这个问题只能升级gcc到4.9以上的版本,无奈centos7没有gcc 4.9+版本的rpm包,只能手动编译了,编译和安装也费了我老大的功夫,不过最后在这里  找到了靠谱的安装方法 http://www.qiujiawei.com/cpp-2/ ,非常感谢这位博主。

        成功安装 gcc 4.9.2,开心的启动Genymotion,出乎意料的是,还是会报如上的错误,问题根本没有解决。接着找问题出在哪里了吧,最后发现 /lib64 中的 libstdc++.so.6根本没有升级,还是用的以前的,最后在 gcc 的安装目录中找到了一个 libstdc++.so.6 ,使用命令 strings libstdc++.so.6 | grep CXXABI 和 strings libstdc++.so.6 | grep GLIBCXX 查了一下,发现里面是有 CXXABI_1.3.8 和 GLIBCXX_3.4.20 的。接下来就是关键了:

        1、cd /lib64

        2、rm libstdc++.so.6

        3、cp gcc目录/libstdc++.so.6  /lib64

        4、ln libstdc++.so.6 libstdc++.so.6

        好嘞,这下 /lib64 下的 libstdc++.so.6 总算是升级成功了,这下 Genymotion 总该可以正常启动了吧,表示这样想的我还是太天真。又报了如下的错误:

       不过,这个问题好解决,在这里找到了解决方案 http://stackoverflow.com/questions/39316164/genymotion-usr-lib64-libx11-so-6-undefined-symbol-xcb-wait-for-reply64 ,不得不说,stackoverflow.com 就是强大呀。只要删除了 /genymobile/genymotion 下的libxcb.so.1 就可以了,这个具体是什么原因,还需要继续研究。

       到此,问题也算是坎坎坷坷的解决了。

      关于这个问题的解决方法,大家要是有其他的解决方法,也请分享出来,供大家交流学习,谢谢。




(责任编辑:IT)