作为一个刚刚接触linux的小菜鸡,前一段时间挑战了一下自我,试了试在centos6.5系统下安装ycm,这款号称史上最难的vim插件,很明显我这个小菜鸟是完全搞不定的,只能堪堪的把ycm编译过而已,离能用还差的远...... 虽然没能成功的安装好ycm,但还是有一些东西可以分享给跟我一样linux菜鸟。
1.升级gcc至7.2.0
获取root权限
后面有的地方需要这个权限,避免麻烦一次获取,平时尽量避免在root下乱玩,容易出事...
当然虚拟机或者机器仅自己用的话随意。
[ljh@localhost ~]$ su
这里键入密码是不显示任何东西的,输完密码直接回车就好(新手向攻略......)
Password:
查看当前gcc版本
[root@localhost ljh]# gcc -v
可以发现centos6.5自带的是4.4.7版本,这个版本不支持c++11
要下就下最新的,目前最新版为7.2.0
好奇的同学也可以去http://ftp.gnu.org/gnu/gcc这个网址选择自己喜欢的版本
[root@localhost ljh]# wget http://ftp.gnu.org/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz
tar.gz后缀的用-zxvf解压,如果你选择的版本是tar.bz2后缀用-jxvf解压
对了这条指令敲到gcc的时候同时按住alt+/可以自动补全,下面的很多指令都可以(主要是为了帮助和我一样的菜鸟)
[root@localhost ljh]# tar -zxvf gcc-7.2.0.tar.gz
进入gcc-7.2.0的文件夹
[root@localhost ljh]# cd gcc-7.2.0
这一步是下载了三个依赖环境gmp,mpc,mprf
有兴趣的同学可以看看http://ayuepm.blog.51cto.com/8738658/1382240这篇博客
[root@localhost ljh]# ./contrib/download_prerequisites
创建一个文件夹放编译出来的文件
[root@localhost gcc-7.2.0]# mkdir gcc-build-7.2.0
[root@localhost gcc-7.2.0]# cd gcc-build-7.2.0/
生成Makefile文件,如果有同学需要gcc支持java之类的语言,移步上面的链接,用里面给出的configure代替本句
[root@localhost gcc-build-7.2.0]# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
编译
由于我用的是虚拟机且只分配了一个核心,所以这一步直接使用了make,对于多核处理器本步可加 -j4选项加快编译速度(很慢)
[root@localhost gcc-build-7.2.0]# make
编译到一半的时候报错了,错误如下
make[2]: *** [configure-stage1-gcc] Error 1
make[2]: Leaving directory `/home/ljh/gcc-7.2.0/gcc-build-7.2.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/ljh/gcc-7.2.0/gcc-build-7.2.0'
make: *** [all] Error 2
如果你也遇到了,莫慌,键入下面的指令
[root@localhost gcc-build-7.2.0]# yum install gcc-c++
遇到yes or on的话当然是yes了.然后继续编译
[root@localhost gcc-build-7.2.0]# make
查看gcc版本
[root@localhost gcc-build-7.2.0]# gcc -v
版本为7.2.0,这个时候基本就已经大功告成了,唯一的问题就是现在的动态库还是旧的需要更新
进入lib目录,如果是64位的centos应该进入的时lib64目录
[root@localhost gcc-build-7.2.0]# cd /usr/lib
查看一下现在动态库版本
[root@localhost lib]# strings /usr/lib/libstdc++.so.6 | grep GLIBC
发现里面GLIBCXX_3.4.13是最高的
[root@localhost lib]# rm -rf libstdc++.so.6
[root@localhost lib]# cp /usr/local/lib/libstdc++.so.6 ./
再次查看动态库版本
[root@localhost lib]# strings /usr/lib/libstdc++.so.6 | grep GLIBC
这时已经有了GLIBCXX_3.4.24
至此高版本gcc就安装完成了
文章摘抄于,做了一些个人补充,解决了一个原文中没有的错误,简化了更正动态库的步骤。