code::blocks在c++11下std::to_string()仍然不能用问题的解决

参考资料:

c++11 to_string to working with code::blocks -std=c++11 flag already selected
#82 std::stol() and std::to_string fail compilation on windows using bundled mingw-gcc

在code::blocks中,使用标准库string中的函数to_string()会报错:
'to_string' is not a member of 'std'

问题分析

这个报错是编译器MinGW-gcc的一个bug,具体如下:

Bug 52015 - std::to_string does not work under MinGW

在GCC 4.8.0及以上版本中,这个bug已被修复。然而对于MinGW gcc,其32位版本仍然存在问题,需要使用64位版(mingw-w64)。

解决方法

综上,为了继续使用MinGW编译器并解决这一问题,需要自己安装最新版的MinGW-w64编译器,此后需要在code::blocks中对编译器设置进行一定的修改:

选择Settings -> Compiler,进入下图所示页面

我们用的依然是GNU GCC,需要更改的是Toolchain executables选项卡下面的内容:路径选择编译器安装的路径(bin文件夹所在的路径),Program Files内容也根据bin文件夹下各个.exe文件的名字进行输入。

以上。

文章目录
  1. 1. 问题分析
  2. 2. 解决方法
|