版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: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./) 接下来升级, 有些软件的安装升级可以从编译好的二进制包升级,免去了构建的痛苦,但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的样子,所以慢慢等。下载完成后进入第二步。 由于最近被限速了,所以建议大家下载压缩包(http://ftp.tsukuba.wide./software/gcc/releases/gcc-8.2.0/) 第二步:安装依赖库 以前升级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的版本: ———————————————— 版权声明:本文为CSDN博主「ztenv」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lianshaohua/article/details/83411684 |
|