前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gcc报错:terminate called after throwing an instance of ‘std::regex_error‘ what(): regex

gcc报错:terminate called after throwing an instance of ‘std::regex_error‘ what(): regex

作者头像
花狗Fdog
发布2022-05-09 15:24:08
2K0
发布2022-05-09 15:24:08
举报
文章被收录于专栏:花狗在Qt花狗在Qt

出现这个错误的原因应该是gcc版本的问题。

查看版本命令: gcc --version

不出意外的话应该是4.8.x的版本

经查询gcc4.9才支持c++的正则表达式,所以我们需要将gcc进行升级。

先找一个gcc4.9的源码包进行安装(自己找一个)

mkdir build …/./configure make & make install

执行configure可能报错: linux : error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

说明需要安装这三个库: wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

tar.bz2 解压命令 tar -jxvf tar.gz 解压命令 tar -zxvf

./configure make & make install

执行gmp的configure可能报错: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons)

说明缺少m4这个库 wget http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2

执行./configure可能报错: ./stdio.h:477:1: error: ‘gets’ undeclared here (not in a function) _GL_WARN_ON_USE (gets, “gets is a security hole - use fgets instead”);

进入m4/lib 找到一个stdio.in.h的问题,找不到可以试试使用find -name stdio.in.h

把第一行注释掉

代码语言:javascript
复制
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

添加下面

代码语言:javascript
复制
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

然后一路编译这几个库

到了编译gcc的时候

configure又报错了

I suspect your system does not have 32-bit developement libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.

执行 sudo yum install glibc-devel.i686 sudo yum install libgcc.i686

哦终于过了 执行make make install走起

哦忘了说了,如果你的机子是多核的可以执行并行编译 make -j8 后面的数字代表核数

这段时间可以看一部电影,不出意外看完了make还没执行完。。。。。

我感觉劝退萌新的不是语言本身,倒是linux下的环境配置。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档