GCC 4.8.1 std :: to_string错误

时间:2014-03-22 00:29:43

标签: c++ gcc c++11 mingw

我已经能够在这方面找到很多问题,但是如果用-std = c ++ 11进行编译,似乎所有人都认为应该使用gcc 4.8.1

这是我输出的g ++ --version:

g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

然而,当我尝试用std :: tostring编译一些东西时,即使是这样的简单命令:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 -o "Main.o" "Main.cpp"

我收到以下错误:

Main.cpp: In function 'int main()':
Main.cpp:6:26: error: 'to_string' is not a member of 'std'
  std::string intString = std::to_string(1335);

即使是一个简单的文件:

#include <string>
#include <cstdio>

int main()
{
    std::string intString = std::to_string(1335);
    printf(intString.c_str());
    return 0;
}

有什么想法吗?这是在Windows 7 64位上使用最新版本的MinGW。

1 个答案:

答案 0 :(得分:4)

MinGW是GCC到Windows的端口。你的问题是MinGW问题(正如一些评论已经注意到的那样)
如果您要在Windows上进行REAL C ++开发,我建议您使用MSVC。不,真的,尽管微软是邪恶的 无论如何,这是Coliru显示它在合法的gcc上工作正常:away! this就是这样做的(如果您使用的是c ++ 11,还可以使用实际的STL?)

(注意:如果你想跨平台,你可以使用clang或正确的构建工具)