### 前言
最近在更新nodejs
版本,一直提示gcc
版本过低
g++: error: unrecognized '-std=c++17'
先查了一下当前的gcc
版本
$ gcc -v
...
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
先了解一下gcc
与c++
的依赖关系:
- C++17
gcc7完全支持,gcc6和gcc5部分支持,gcc6支持度当然比gcc5高,gcc4及以下版本不支持。
C++14
gcc5就可以完全支持,gcc4部分支持,gcc3及以下版本不支持。
C++11
gcc4.8.1及以上可以完全支持。gcc4.3部分支持,gcc4.3以下版本不支持。
因此想要解决该问题,需要升级gcc
到最少gcc7
的版本
官方有详情的安装说明文档:https://gcc.gnu.org/install/
下载
在下载页 https://bigsearcher.com/mirrors/gcc/releases/ 找到合适的版本,我选择了最新的版本https://bigsearcher.com/mirrors/gcc/releases/gcc-11.2.0/gcc-11.2.0.tar.gz
文件有100多M,如果是国内可能比较慢,建议用其它下载工具,如迅雷
安装
tar zxvf gcc-11.2.0.tar.gz
cd gcc-11.2.0
# 下载依赖
./contrib/download_prerequisites
# 配置
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
# 检测
make -k check
# 安装
make install