CentOS7 编译安装gcc5.4.0

一、安装虚拟机及系统
虚拟机安装过程比较简单,而且默认配置不用该,在公司上不了网是因为要设置代理服务器,跟虚拟机网络设置无关!
安装系统就有几点需要特别注意了:
1、CentOS有一个“安装软件”的选项,这里默认是最小安装,坑啊!对于我这种新手哪知道什么叫最小安装,安完就一个终端界面欲哭无泪啊,装了两遍才知道要选GNOME桌面。
2、麒麟系统需要注意要手动安装VMware Tools(提供的教程已经很详细了,而我还是安了两遍才成功),CentOS可以一键安装VMware Tools。

二、配置网络、yum、wget
1、CentOS和麒麟都是自带FireFox浏览器。在FireFox浏览器找编辑->首选项->高级->网络->连接->设置->手动配置代理
(当初一直以为跟虚拟机网络设置有关没少走弯路)

2、紧接着要配置yum 。首先在终端输入 yum list 如果连接失败会有明显标识。连接不通则编辑sudo vi /etc/yum.conf 添加
(假设proxy.server.com为代理服务器地址)
proxy = http://proxy.server.com:8080
proxy_username= 用户名
proxy_password = 密码

然后再yum list试试,显示很多安装包就成功了。

3、配置wget。这是一个下载工具,这也需要配置代理。
cd ~
vi .wgetrc(注意有”.”)
http_proxy = http://proxy.server.com:8080/
ftp_proxy = http://proxy.server.com:8080/
–proxy-user=用户名
–proxy-passwd=密码
注意跟yum.conf有点区别。

三、装gcc5.4.0
因为std::regex error,需要更新gcc。yum install gcc只能更新到4.8.1,而gcc4.8.1并不能解决regex问题,所以我需要手动安装gcc5.4.0.可以说这个大坑我安了四天!
首先可以先输入gcc –version查看一下当前gcc版本
gcc下载地址:ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases
下好了gcc5.4.0,压缩包为gcc-5.4.0.tar.bz2 输入tar -jxvf gcc-5.4.0.tar.bz2 获得gcc-5.4.0文件夹
mkdir build (以后的操作目录)
cd gcc-5.4.0/
./contrib/download_prerequisites(这里在下载一些安装gcc会用到的文件,如果没配置wget则会失败。)
cd ../build/ (来到工作目录)
接下来要安装gmp、mpfr、mpc
gmp:
../gcc-5.4.0/gmp-4.3.2/configure
sudo make
sudo make install

mpfr:
../gcc-5.4.0/mpfr-2.4.2/configure
sudo make
sudo make install

mpc
../gcc-5.4.0/mpc-0.8.1/configure
sudo make
sudo make install

现在再安装gcc就可以了
../gcc-5.4.0/configure –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++
sudo make (及其耗时,将近两个小时)
sudo make install

OK!到这里不用再修改任何文件,输入gcc –version 会显示gcc5.4.0(CentOS 7 和麒麟都是如此)
回到程序,可能会提示libstdc++问题,

strings /usr/lib64/libstdc++.so.6 | grep GLIBC
查看已有的GLIBCXX

strings /usr/local/lib64/libstdc++.so.6 | grep GLIBC
查看安装gcc后新的GLIBXX

rm /usr/lib64/libstdc++.so.6

方法一:
cp /usr/local/lib64/libstdc++.so.6.21 /usr/lib64/
ln -s

方法二:
cp /usr/local/lib64/libstdc++.so.6 /usr/lib64/

除此之外,还学会了在办公室使用共享文件夹。这些事就好像虽然我已经国三了,但是我不会国二啊!
虽然总说程序员每天都在烦恼,一个又一个新问题环环相扣,但是当自己努力地解开一环又一环,成功通关的成就感太充实了!反反复复地while循环总会柳暗花明!

点赞