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
对代码重新编译后即可!

文章讲述了在CentOS7.9环境下,C++11程序编译正常但运行时遇到regex_error的问题。解决方法是通过安装DeveloperToolset7软件集合,使用devtoolset-7版本的GCC,更新编译环境后解决问题。
2860

被折叠的 条评论
为什么被折叠?



