C++ Eclipse:function';到字符串';无法解决
可能重复:C++ Eclipse:function';到字符串';无法解决,c++,eclipse,c++11,eclipse-cdt,C++,Eclipse,C++11,Eclipse Cdt,可能重复: 我面临着这个恼人的问题:Eclipse拒绝识别std::to_string函数,但我的程序编译时没有错误。我错过了什么 根据std::to_string函数是在中定义的,因此我将其明确地包含在incinciminated.cpp文件中。我也试过了,但没有找到解决办法 还有其他建议吗 编辑: 我正在Linux下使用g++4.7.2。更新:我已经很久没有发布原始答案了,它已经过时了。我今天仔细检查了一下(2014年3月15日):在Eclipse Kepler(构建id 20130614
我面临着这个恼人的问题:Eclipse拒绝识别
std::to_string
函数,但我的程序编译时没有错误。我错过了什么
根据std::to_string
函数是在
中定义的,因此我将其明确地包含在incinciminated.cpp
文件中。我也试过了,但没有找到解决办法
还有其他建议吗
编辑:
我正在Linux下使用g++4.7.2。更新:我已经很久没有发布原始答案了,它已经过时了。我今天仔细检查了一下(2014年3月15日):在Eclipse Kepler(构建id 20130614-0229)中
-
<> >项目添加>属性> C/C++ +构建>设置,然后在工具设置选项卡GCC C++编译器>杂项<代码> -STD= C++ 11 标志,
- 然后在“发现”选项卡上的“窗口>首选项>C/C++>构建>设置”下,选择“CDT GCC内置编译器设置”,并将
标志添加到命令以获取编译器规格。在我的机器上,更改后的外观如下:-std=C++11
${COMMAND}-E-p-v-dD-std=c++11“${INPUTS}”
- 清理并重建项目和索引(项目>C/C++索引>重建),因为Eclipse倾向于缓存错误消息并显示它们,即使更改设置后错误消息消失了
原来的帖子,现在已经过时了: 似乎你遇到了Codan的常见问题,请参见
代码的编译方式还不是100%清楚。在日食中?或者从命令行,正确设置标志?以防万一: 您正在使用一个C++11函数。您是否将
-std=c++0x
或-std=c++11
标志传递给编译器(假设为gcc)
您可能还必须将\uuuuugxx\ucx0x\uuuux0x\uuuu>添加到您的定义中(同样,假设为gcc)并重新启动Eclipse
在我的例子中,eclipse相信\uuu cplusplus
被定义为199711L
,但我很确定这应该定义为类似201103L
的东西,因为libstdc++v3
使用
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else
重新定义后,您需要右键单击项目索引->重建并刷新所有文件,或者最好一起重新启动eclipse。对不起,我没有提到我在Linux下使用的是g++4.7.2。是的,我在编译器的命令行中有-std=c++0x
标志,我还尝试了-std=c++11
并启用了\uuuugxx\ucx0x\uuuuxx
,但没有成功。我已经看过你的答案了,我怀疑我最终会手动禁用一些最烦人的错误。谢谢你的回答,+1谢谢你的尝试。@Ali:问题是项目编译正常,所以你所有关于编译设置的建议都没有用。他需要日食升级。@BenVoigt是的,这也是我的第一个猜测。然而,目前还不清楚代码是如何编译的。在日食中?或者从命令行,正确设置标志?或所以我试了一下,告诉了他所有可能导致错误的事情。但我同意,Eclipse升级和禁用Codan可能会解决他的问题。@Avio请告诉我禁用Codan是否真的有帮助。@Avio是的,一般来说,你应该这样做,但在Eclipse中,它是Codan中的一个bug,我认为你不会找到更好的解决方法。我报告了这个bug,正如您所看到的,什么都没有发生:(是的,这是“主”问题:但我正在寻找一个特定的解决方法(例如,在某处包含一个头文件),我不希望禁用Eclipse错误检查。我尝试了您的\uuuCPlusplus
解决方案,但没有成功。但是,看看basic_ustring.h
,我发现\ifdef
包含了所有to_ustring
定义(\u35; if(已定义(\uugxx\ucx0x\ux)和已定义(\u GLIBCXX\u使用
)显示为灰色。但是,如果我尝试在代码中复制/粘贴相同的\ifdef
,它不会显示为灰色。我已尝试(再次)定义\uuuugxx\u实验性的CXX0X\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu它所需要的er值(不仅是\uuuuuugxx\ucx0x\uuuuxx\uuuux>,即使在当前文件中也没有灰显)然后重新构建索引,刷新文件并重新启动Eclipse。+ 1,这很好。我甚至添加了GXXXTEXTRONTALL OXCXX0X,它在哪里帮助,它不再做它,这个解决方案就是我必须使用的。STD::ToSo字符串不起作用。使用Eclipse开普勒与明文64 /GCC 4.82.Eclipse开普勒,C++通用->预处理器包括路径、宏等。> ----- GNU C++ > CDT用户设置实体添加201103L@jean你的答案在Luna上有效:C++General
->预处理器包括路径
->在左窗格中的条目下突出显示GNU C++
,然后在右窗格中突出显示CDT用户设置
,然后单击将
添加到右侧。在生成的弹出窗口中,选择#预处理器宏
,对于名称
使用cplusplus,对于值
使用201103L。一旦完成装配
#undef __cplusplus
#define __cplusplus 201900L