[英]to_string not declared in scope
我试图让to_string(NUMBER)
函数在我的 Ubuntu 计算机上工作数周,但它从来没有在 QT 环境或其他任何地方工作过。 我的代码在我的 Mac osx 上完美运行,但是当我尝试在 Ubuntu 中运行它时,它抱怨to_string
没有在范围内声明。 对此的任何解决方案将不胜感激。 我试图更新 gcc 编译器,但它没有解决问题。 请帮忙。
我使用的是 QT Creator 4.8.1,我使用的是 C++ 和最新版本的 Ubuntu。
int Bint::operator*(int temp){
Bint b(to_string(temp));
return ((*this)*b);
}
我在 pro 文件中缺少 QMAKE_CXXFLAGS += -std=c++0x 。
它对您不起作用可能有不同的原因:也许您需要使用std::
限定名称,或者您没有 C++11 支持。
如果您有 C++11 支持,这有效:
#include <string>
int main()
{
std::string s = std::to_string(42);
}
要使用 g++ 或 clang 启用 C++11 支持,您需要传递选项-std=c++0x
。 您还可以在这些编译器的较新版本上使用-std=c++11
。
您必须使用 C++11 支持编译文件
g++ -std=c++0x -o test example.cpp
我通过更改Application.mk 中的第一行来解决这个问题
APP_STL := gnustl_static
到
APP_STL := c++_static
您需要在编译器中进行一些更改。 在 Dev C++ 编译器中: 1. 转到编译器设置/编译器选项。 2. 点击General Tab 3. 勾选复选框(调用编译器时添加以下命令。4. write -std=c++11 5. 点击Ok
这个错误,正如上面正确识别的,是由于编译器没有使用 c++11 或更高的标准。 此答案适用于Windows 10 。
对于代码块版本 17 中的 c++11 及更高版本的标准支持:
单击工具栏中的设置。
出现一个下拉菜单。 选择编译器选项。
选择全局编译器设置。
在第二部分的这个新窗口的工具栏中,选择compiler settings 。
然后在下面的工具栏中选择编译器标志选项。
展开常规选项卡。 检查您希望编译器遵循的C++ 标准。
单击“确定” 。
对于那些试图在 Sublime 文本中获得 C++11 支持的人。
下载mingw 编译器版本 7或更高版本。 在低于此的版本中,使用的默认 c++ 标准是 c++98,而在高于 7 的版本中,使用的默认标准是 c++11。
复制主C盘中的文件夹。 它不应该在 C 盘的任何其他文件夹中。
将文件夹重命名为 MinGW 。 此名称不区分大小写,因此它应该是 mingw 的任何变体,并且不得在名称中包含任何其他字符。
然后转到环境变量并编辑路径变量。 添加此“ C:\\mingw\\bin ”并单击“确定”。
您可以通过键入g++ -v
在 cmd 中检查 g++ 的版本。
这应该足以在 sublime text 中启用 c++11。
如果您想从输入文件中获取输入和输出以用于竞争性编程目的,请点击此链接。
//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.