codeblocks中报错:'to_string' was not declared in this scope解决方案

  在windows下使用codeblocks(编译器采用MinGW)时,有时会遇到“’to_string’ was not declared in this scope”的错误,这里不再对codeblocks、to_string等详细介绍,只介绍跟此问题相关的部分与解决办法。
  首先,to_string是C++11引入的新功能,旧版本编译器可能不支持它,所以要给编译器加上“C++11”编译支持:工具栏打开Settings->Compiler

在这里勾选C++11标准即可。
  当然你还要检查你的代码是否有问题。to_string包含在string中,而string包含在空间std中,所以你的代码应该包含头文件和相关空间引入,举个小例子:

#include <iostream>
#include <string> //std::string std::to_string

using namespace std;

int main()
{
    int a = 123;
    cout << "a = " << to_string(a) <<endl; // 如果不加命名空间可以在这里使用std::to_string

    return 0;
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

  一般来说到这里大部分人的问题都能解决,但如果你的问题仍然没解决,那就来进行终极一步。事实上这是MinGW自身的一个bug,对C++中to_string等一系列函数不支持,解决方案就是下载新的相关头文件,这里包含了对这一系列函数的引入。具体步骤如下:

  • 这里下载替换的相关文件(CSDN博客不能直接插入附件,所以以资源的方式上传了,本来想设置0积分下载的,竟然最低2积分,积分不够的或者介意的可以在这里下载)
  • 将下载的文件解压,会得到include文件夹和os_defines.h文件,还有我写的说明及使用步骤readme.txt。
  • 将include文件夹下的wchar.h和stdio.h拷贝到MinGW的include文件夹中,一般是C:\mingw\include,如果你的codeblocks集成了MinGW则首先要从你的codeblocks安装目录中找到MinGW文件夹,拷贝到其下的include文件夹。
    C:\mingw\include 或者 D:\Program Files\CodeBlocks\MinGW\include(记得找你自己的codeblocks安装目录)

  • 将os_defines.h拷贝到MinGW安装目录的如下目录:
    C:\mingw\lib\gcc\mingw32\4.7.0\include\c++\mingw32\bits
    当然如果codeblocks集成MinGW,你要拷贝到对应的MinGW目录下对应的文件夹。

  • 这里所有的拷贝操作都要选择替换

参考链接:
to_string is not a member of std, says g++ (mingw)

全部评论

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务