gcc11已经支持了绝大部分的C++20的特性,跟着我一起升级gcc到11.x版本,然后尝试学习和使用C++20标准吧,关于C++20标准的特性,请参见:C++20标准
下载 gcc源码
git clone https://github.com/gcc-mirror/gcc.git
为了解决下载速度的问题,我把源码及依赖库都上传到了CSDN的资源(下载后解压,可直接编译):
点此从CSDN下载第一部分
点此从CSDN下载第二部分
点此从CSDN下载第三部分
安装依赖库
待源码下载完成后,进入gcc目录,并切换到11.2.0分支:
git checkout releases/gcc-11.2.0
然后下载相关的依赖库:
./contrib/download_prerequisites
此命令会自动把gcc需要的这几个依赖库下载完成
接下来安装与gcc相关的文件
sudo yum install libgcc.i686 glibc-devel.i686 -y
如何没有找到libgcc.i686、glibc-devel.i686,请更新centos的源为国内的源再下载
配置
/configure -prefix=/usr/local --enable-checking=release --enable-languages=c,c++ --enable-multilib
编译
make -j8 #根据cpu的核数指定-j后面并行编译的个数
PS:我在自己40核的电脑上,安装了一个linux虚拟机,分配了16核CPU、8GB内存,大概编译了:59分钟的时间…
安装
经过漫漫漫漫长的等待,终于make完成了,然后执行:
sudo make install
安装完成的最后信息截图如下:
创建软链接
sudo ln -s /usr/local/bin/gcc /usr/bin/gcc-11
sudo ln -s /usr/local/bin/g++ /usr/bin/g++-11
可能遇到的问题及解决办法
- 未安装flex
下载flex-2.6.4
或选择适合自己的版本:flex release 包
解压后,安装./autogen.sh && ./configure --prefix=/usr && make && sudo make install
- makeinfo is missing …
安装texinfo即可,centos系统需要先执行:
sudo yum config-manager --set-enabled PowerTools
启用powertools后,才可以使用 sudo yum install texinfo
安装
然后重新编译gcc即可。