首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++无法解析标识符to_string

c++无法解析标识符to_string
EN

Stack Overflow用户
提问于 2016-12-15 12:58:55
回答 2查看 1.9K关注 0票数 1

日安

我到处寻找,却找不到解决办法。

IDE :使用“最新”MinGW编译器的 NetBeans IDE 8.2 MinGW:

原版:

我想把int转换成字符串。

但是,使用方法,我试图转换为字符串。

这个提议的方法std::to_string()在使用时会产生错误(以to_string作为错误)。

无法解析标识符to_string

项目依赖:

代码语言:javascript
复制
#include <string>
#include <iostream>

为了寻求解决这一问题的方法,有两个方案出现了这里这里

设置C和C++编译器版本可以很好地解决这个问题。

没有,有什么建议吗?

最小代码:

代码语言:javascript
复制
#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
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-15 17:26:11

这是众所周知的MinGW的问题

gcc -std=gnu++14 -Wall -Wextra main.cpp main.cpp: In函数'int main()':main.cpp:24:26: main.cpp:24:26:错误:'to_string‘在此范围内未声明为cout<

即时“标准”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中的工具链,则必须在项目属性中添加新的工具集合。

票数 2
EN

Stack Overflow用户

发布于 2016-12-15 23:05:53

在我回答问题之前,我要感谢斯特夫指导我朝着正确的方向前进,从而使我能够解决问题,如果你认为这是值得的,请给他一张上票。

我的安装信息

代码语言:javascript
复制
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等

首先,我安装了mingw32,正如使用c++建立netbeans的netbeans文档页面所指定的,这是为了为c++设置编译器(因为它似乎不是自动的)。

我遵循所有步骤,将路径添加到环境中,而不更改任何安装路径,以尽可能保持“教程”的状态。

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

溶液

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

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

1.

MinGW64安装程序从sourceforge中找到这里

安装这个,当然不改变设置。

2.

打开netbeans > Tools > Options > C/C++选项卡。

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

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

代码语言:javascript
复制
C:\Program Files\mingw-w64\x86_64-6.2.0-win32-seh-rt_v5-rev1\mingw64\

将编译器命名为适当的名称,我将其命名为"MinGW_64“,对于Tool Collection族,选择"GNU MinGW",然后单击ok。

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

在我的例子中,我必须填写两个部分,即C Compiler字段和C++ Compiler字段。

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

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

完成之后,让MinGW64编译器成为您的默认编译器。

3.

最后,如果您有一个发生此错误的开放项目(我认为很可能是这样),那么还有最后一件事要做。

右键单击项目>属性>生成。

查找选项"Tool Collection",相应的编译器名称应该是"MinGW“(与我前面引用的编译器的名称相同--错误的名称),应该将其更改为您刚刚安装的新MinGW_64编译器,并添加到Tools > Options > C/C++部分中。

完成!

关闭您的项目属性,项目应该自动恢复,如果没有,右键单击项目>代码协助>修复项目,等待修复和您的问题应该解决。

我真的希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41164774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档