c ++无法解析标识符to_string

时间:2016-12-15 12:58:56

标签: c++ netbeans

美好的一天

我搜索过高低,但没有解决方案。

IDE: NetBeans IDE 8.2 MinGW:使用"最新版本" MinGW编译器。

原始问题:

我想将int转换为字符串。

使用this方法,我尝试转换为字符串,但是

这个提议的方法std::to_string()在使用时导致错误(以to_string作为错误)

  

无法解析标识符to_string

项目依赖:

#include <string>
#include <iostream>

正在寻找此问题的解决方案,出现了2个推广解决方案herehere

设置C和C ++编译器版本应该可以解决这个问题。

没有,有什么建议吗?

最小代码:

#include <string>

struct User_VPN_Info{
    std::string name, expire;
    int DaysLeft;

    User_VPN_Info(){}

    User_VPN_Info(std::string _name, std::string _expire, int _DaysLeft){
        name = _name;
        expire = _expire;
        DaysLeft = _DaysLeft;
    }

    std::string getString(){
        return(name + " + " + expire + " + " + std::to_string(DaysLeft) + " ; ");                                                    
    }                                             //^_______^ problem here
};

2 个答案:

答案 0 :(得分:2)

MinGW已知问题

gcc  -std=gnu++14 -Wall -Wextra  main.cpp
main.cpp: In function 'int main()':
main.cpp:24:26: error: 'to_string' was not declared in this scope
     cout<<to_string(a)<<endl;

gcc  --version

gcc.exe (GCC) 5.3.0

即时'标准'MinGw你应该使用MinGW-w64 - 用于32位和64位Windows

/mingw-w64/i686-6.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin
./g++   -std=c++14   main.cpp

编译没有错误

如果您想在Netbeans中更改工具链,则必须在项目属性中添加新的工具集合。

答案 1 :(得分:0)

在回答这个问题之前,我要感谢斯特夫指导我朝着正确的方向前进,从而让我解决问题,如果你认为值得,请给他的答案一个赞成。

我的安装信息

Product Version: NetBeans IDE 8.2 (Build 201609300101)
Java: 1.8.0_112; Java HotSpot(TM) 64-Bit Server VM 25.112-b15
Runtime: Java(TM) SE Runtime Environment 1.8.0_112-b15
System: Windows 10 version 10.0 running on amd64; Cp1252; en_ZA (nb)

设置Netbeans等

按照惯例,我按照netbeans documentation page for seting up netbeans with c++的规定安装了mingw32,这是为c ++设置编译器(因为看起来不会自动执行此操作)。

我按照所有步骤,添加环境路径,而不是更改任何安装路径,以保持&#34;教程&#34;尽可能。

编码和导入代码后,我遇到了上面提到的错误,所以steff建议使用MinGW64编译器,我刚刚使用了mingw32编译器。

<强>解决方案

所采取的步骤概述(我的解决方案

  1. 安装MinGW64
  2. 添加工具链(又名编译器)
  3. 更改项目工具链(又名编译器)
  4. <强> 1

    MinGW64设置从sourceforge找到here

    安装此项,不更改课程设置。

    <强> 2

    开放netbeans&gt;工具&gt;选项&gt; C / C ++标签。

    这里我左边有MinGW,这是预安装的编译器,由于文档页面中的安装说明(MinGW32编译器/ toochain提供错误)而存在

    单击Add(添加新编译器),浏览到新安装的MinGW64编译器的位置,我的位于:

    C:\Program Files\mingw-w64\x86_64-6.2.0-win32-seh-rt_v5-rev1\mingw64\
    

    将编译器命名为适当的名称,我将其命名为&#34; MinGW_64&#34;对于工具收集系列,选择&#34; GNU MinGW&#34;,然后单击确定。

    • 现在,将链接添加到编译器exe。

    就我而言,我必须填写2个部分,即C Compiler字段和C++ Compiler字段。

    请注意我不确定c ++应该指向哪个特定的exe,我只选择了c++.exe,这个编译器解决了我的问题,我不确定{{ 1}}

    请参阅下面的图片作为参考。

    enter image description here

    完成此操作后,将MinGW64编译器设为默认编译器。

    3。

    最后,如果您有一个发生此错误的打开项目(我假设很可能就是这种情况),最后还有一件事要做。

    右键点击您的项目&gt;属性&gt;建立。

    查找选项&#34;工具集合&#34;,相应的编译器名称应为&#34; MinGW&#34; (与我之前提到的编译器名称相同 - 有问题),这应该更改为刚刚安装并添加到Tools&gt;中的新MinGW_64编译器。选项&gt; C / C ++部分。

    完成!

    关闭项目属性,项目应自动重新分析,如果没有,右键单击项目&gt;代码帮助&gt;重新分析项目,等待重新分析,你的问题应该解决。

    我真的希望这会有所帮助。