To_string未在作用域中声明
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);
}
我在概要文件中缺少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中的第一行来修复此问题。可与
APP_STL := gnustl_static
APP_STL := c++_static
您需要在编译器中做一些更改。在Dev c++编译器中:1. 进入编译器设置/编译器选项。2. 点击常规选项卡3.选中复选框(在调用编译器时添加以下命令)。4. 写化c++ 115. 单击Ok
此错误,如上所述,是由于编译器未使用c++11或更高标准。这个答案适用于Windows 10。
对于c++11及以上版本codeblocks version 17的标准支持:
-
单击工具栏中的settings
-
出现下拉菜单。选择编译器选项
-
选择全局编译器设置。
-
在第二部分新窗口的工具栏中选择编译器设置。
-
然后选择工具栏下面的编译器标志选项
-
展开general选项卡。检查你希望编译器遵循的c++标准
-
点击对。
-
下载mingw编译器版本7或以上。在此以下的版本中,使用的默认c++标准是c++98,而在高于7的版本中,使用的默认标准是c++11。
-
复制主C盘中的文件夹。不应该在C盘的其他文件夹中
-
将文件夹重命名为MinGW这个名字不区分大小写,所以它应该是mingw的任何变体,并且不能在名字中包含任何其他字符。
-
然后进入环境变量,编辑路径变量。添加这个" C: mingw bin "并单击OK。
-
您可以在cmd中输入
g++ -v
来检查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);
- 未在作用域中声明unordered_map
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 未在此作用域中声明的函数和变量 (C++)
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 重载时未在 C++ 的作用域错误中声明
- 在 C++ 中使用 "transform" 会给出一个错误,指出这未在作用域中声明
- Tictactoe 游戏变量未在作用域中声明
- 当变量在多个函数作用域中使用时,我应该在类 private 中声明该变量吗?
- 如何在C++中嵌套词法作用域可访问的作用域中声明静态信息?
- gets()未在作用域中声明
- 在C++14中,在哪个作用域中声明了重新声明枚举的非范围枚举器
- C++11 外部作用域变量声明为 auto
- 未在此作用域中声明类 (c++)
- 如何声明在函数作用域中定义的结构
- 未在此作用域中声明函数,即使存在头文件也是如此
- 变量声明中结构的作用域解析是什么意思
- 在C++中,在给定的相同作用域内声明相同的变量名
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 类未在作用域中声明,但已声明该类
- 使用新的外部函数作用域声明和初始化变量