MENU

GCC4.8使用regex坑

背景

最近在写C++的webserver,其中的有一块需要用到正则表达式,而系统centos7自带的GCC编译器的版本gcc 版本 4.8.5,在make编译时候出现std::regex_error::regex_error,一开始怀疑正则问题,使用网页版的正则表达式工具review确实是正确的,后面有在思考是否为编译器版本问题,强大的搜索引擎告诉我确实为版本的原因,regex标准库需要GCC大于等于4.9版本。

解决方法

  • 采用Boost库中regex
  • 升级GCC版本(博主直接升级到GCC8)
    # 升级方法还是比较简单
    
    yum install centos-release-scl scl-utils-build # scl源安装
    
    yum install -y devtoolset-8-toolchain  # 安装gcc gcc-c++等
    
    scl enable devtoolset-8 bash # 设置使用gcc8(此命令为临时,退出shell后又恢复系统自带版本) 
    
    echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile # 设置为默认GCC编译器
    
    gcc --version
    
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码