centos7升级gcc8.2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lianshaohua/article/details/83411684

        centos7系统自带的是gcc 4.8.5的,对c++11支持还算比较好。目前,c++14、c++17的标准都已出台,c++20还会远吗?

为了更好的学习和工作,说白了就是为了尝鲜,老广干什么事情都是要尝鲜的,所以身在广东的我,也准备尝尝鲜,把centos7的gcc升级到gcc最新版本,目前最新的版本是gcc8.2(详见:https://gcc.gnu.org/)

         接下来升级,

        有些软件的安装升级可以从编译好的二进制包升级,免去了构建的痛苦,但gcc必须从源码升级,必须经历编译的痛苦。

       具体升级步骤如下:

       (建议至少要有12GB以上的空闲空间)

第一步:下载gcc8.2源码

                我习惯使用git,所以早已在centos安装了git,gcc的gitURL:https://github.com/gcc-mirror/gcc,在浏览器打开这个网址后,不要急于下载,先选择gcc的版本,如下图所示:

                先点击“Branch:master”,再点击“Tags”

                 最后找到gcc 8.2,点击"gcc-8_2_0-release"完成Tags的切换

                                              

                 进入自己的home目录执行如下命令:

                   git clone  --branch gcc-8_2_0-release  https://github.com/gcc-mirror/gcc.git

                下载时间视网速而定,源码大概有3.3GB的样子,所以慢慢等。下载完成后进入第二步。

          

第二步:安装依赖库

               以前升级gcc非常麻烦,因为gcc依赖了mpfr、gmp、mpc 和isl共四个库,下载也麻烦 ,现在简单了。

              在gcc目录,执行:./contrib/download_prerequisites

              此命令会自动把gcc需要的这几个依赖库下载完成

第三步:配置、编译、

             在gcc目录,执行配置命令:./configure  --prefix=/usr --enable-multilib

             如果只需要支持c,c++编译器,则执行配置命令:./configure  --prefix=/usr --enable-multilib --enable-languages=c,c++

             可能会报错:configure: error: I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.(意思是说:没有找到32位的开发库,如果不想编译支持多平台的gcc,可以使用--disable-multilib重新配置),大咖怎么能不支持多平台的编译呢?所以安装32位的开发库吧,使用如下命令:

             sudo yum install libgcc.i686
             sudo yum install glibc-devel.i686

            安装完成后,再次执行命令:./configure --prefix=/usr --enable-multilib

            应该不会报错了,且会生成Makefile,然后编译:

            make  #建议使用单任务make,不要使用多任务,多任务有可能会编译报错。

           经过漫漫漫漫长的等待,终于make完成了,然后执行:

           sudo make install  安装完成的最后信息截图如下:

               

               最后使用gcc --version 查看gcc的版本:

              

           

猜你喜欢

转载自blog.csdn.net/lianshaohua/article/details/83411684