CentOS 7.9下的C++ 11程序编译正常,运行时报错:
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
Aborted
解决办法:
经查询gcc4.9才支持c++的正则表达式,所以我们需要将gcc进行升级。
不需要这样做,因为即使升级后,可能还是会运行出错。
测试有效的解决办法:
安装: Developer Toolset 7
# 1. Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
$ sudo yum install centos-release-scl
# On RHEL, enable RHSCL repository for you system:
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
# 2. Install the collection:
$ sudo yum install devtoolset-7
# 3. Start using software collections:
$ scl enable devtoolset-7 bash
对代码重新编译后即可!