Netbeans 中的错误“无法解析标识符”
Posted
技术标签:
【中文标题】Netbeans 中的错误“无法解析标识符”【英文标题】:Erroneous "Unable to resolve identifier" in Netbeans 【发布时间】:2015-08-21 13:39:14 【问题描述】:我的程序编译正常,但 Netbeans 告诉我“无法解析标识符 to_string。”
我尝试了“Netbeans 7.2 shows "Unable to resolve identifier" , although build is successful”中的所有内容,并在代码辅助选项中将“C++ 标准”设置为“C++11”。
这是迄今为止唯一出现此问题的函数。然而,它也是我使用的第一个 C++11 功能,这让我相信它与 Netbeans 不了解我正在使用 C++11 有关,尽管我在代码帮助菜单中明确指定了它。
小例子:
#include <string>
int main()
std::to_string(1);
编辑:使用nullptr
时也会出现同样的问题
EDIT2:我突然意识到提到我不使用生成的 Makefile 而是 SCons 可能很重要。
【问题讨论】:
我会通过使用较新的语言关键字(例如int* testCpp11 = nullptr
)来确保这是与 c++11 相关的问题,然后看看您是否仍然遇到问题。
@shuttle87 nullptr
也标有“无法解析标识符”
【参考方案1】:
自动完成,有时甚至语法高亮在 C++ 中总是出错。您对 C++ 和 C++11 的深入了解越多,Eclipse 和 Netbeans 就越会开始用红色波浪线在所有内容下划线。我的一些(正确且完美编译的)程序是一条巨大的红色波浪线。我建议您完全禁用错误标记并保留自动完成功能,但在许多情况下它不起作用,您必须充分利用它。
【讨论】:
禁用不起作用的功能并不是一个解决方案吗?使用一个充满有用功能的IDE最终禁用有什么意义,您应该建议使用文本编辑器而不是一个 IDE。 我同意这不是一个解决方案。但这是一个答案,因为现实是:Netbeans IDE 无法处理所有这些复杂的抽象。如果这不是您想要的,与 Netbeans 不同的 IDE/应用程序会更适合。 (虽然我真的不知道更好的)【参考方案2】:我知道这个问题已有七个月了,但由于它是谷歌搜索的第二个结果,所以我会告诉你我想出的答案。至少对于 Netbeans。转到您的项目属性并确保将“C 编译器”->“C 标准”设置为 C11,并且将“C++ 编译器”->“C++ 标准”设置为 C++11。你必须设置 BOTH 否则它仍然会给出错误的错误!
【讨论】:
刚刚再次遇到 nullptr 的问题,尝试了您的解决方案,现在它给出了正确的突出显示,所以这似乎是正确的答案。 不知道你是怎么找到这个的,但你让我免于发疯 :) @Oebele 这解决了我的问题。我在 Netbeans 中有两个(!)不同的项目。在一个中,我分别拥有 C++ 编译器和 C++11 和 C11 的 C 编译器。在另一个项目中,我将它们都设置为默认值。但后来我遇到了这个问题(使用默认编译器)。当我为第一个项目更改编译器时,它立即解决了我的问题。谢谢。 这个问题在 Linux 和 Windows 的 8.2 中仍然存在,即使默认(在工具下)设置正确。必须为每个项目设置这有点烦人,但它似乎甚至可以使用 c14(未尝试 c17)。 是的。 NB 10 还是一样。在我找到这个线程之前浪费了几个小时。【参考方案3】:我也有同样的情况。这是因为我使用 .c 文件而不是 .cpp
【讨论】:
【参考方案4】:对于 Netbeans 8.2(在 Linux 上),只有以下对我有用:工具 -> 选项 -> 代码辅助 -> 宏定义:
更改:__cplusplus=199711L
至:__cplusplus=201402L
对于 C++14
或__cplusplus=201103L
对于 C++11
【讨论】:
【参考方案5】:我完成了上述所有操作,但对我来说诀窍是认识到 Makefile 具有 g++ 而不是 g++ -std=c++11。
【讨论】:
【参考方案6】:要在最新的 netbeans 8.2 或 9 版本中解决 c++17 相关的“无法解析标识符”,可能需要将宏定义 __cplusplus=201703L 设置为默认的 C++14 标准宏定义无法解决那些意外错误消息出现在编辑器中。
【讨论】:
【参考方案7】:这样就可以解决问题了:
-
右键单击“项目”。
选择“代码帮助”。
清理 C/C++ 缓存。
重新启动 IDE。
【讨论】:
这对我有用!我尝试将 C 和 C++ 的编译器设置为 v11,但即使重新启动 Netbeans 也无法正常工作。但是清除缓存效果很好!以上是关于Netbeans 中的错误“无法解析标识符”的主要内容,如果未能解决你的问题,请参考以下文章
流行错误-apache netbeans 11.2中的org.sqlite.JDBC [重复]
从现有 cmake 应用程序导入的 Netbeans 项目无法在 Windows 上构建并出现文件系统错误
Netbeans IDE (12.2):PHP 8.0 构造函数提升的语法错误