虽然构建成功,但Netbeans 7.2显示“无法解析标识符”

时间:2013-02-16 17:48:51

标签: c++ linux netbeans netbeans-7

我正在使用 Netbeans IDE 7.2 C / C ++插件(最新版本1.18.1.1)和 如果我构建我的项目一切都很好,但IDE显示错误(例如无法解析标识符......)

其他人都有这个错误,我该如何解决?

12 个答案:

答案 0 :(得分:102)

以下是我对另一个问题的回答摘录。

未解析的标识符

如果.cpp文件的来源如下所示

enter image description here

在项目上单击鼠标右键。
检查C/C++ Code As...
运行Reparse Project.

enter image description here

如果这还不够。
转到Project Properties
按照描述填写Include输入字段。

enter image description here

将包含路径设置为正确。

我希望能帮助你。

答案 1 :(得分:9)

TL; DR

UTF-8 WITH BOM也会导致问题。

问题

我遇到了同样的问题,我尝试了很多可能的解决方案,但是没有一个解决方案,直到我找到了问题的根源,这有点好笑。我知道这个问题已经得到了解答,但我写下了我的解决方案,也许它会解决其他人遇到同样问题的问题。

例如,在定义struct Vector时,我得到“无法解析标识符向量”,但它是正确的:

Unable to resolve identifier Vector

在声明/定义函数等时,我遇到了类似的错误。此外,由于错误的数量,我的代码帮助无效。

  1. 我在 Notepad++ 中打开了.cpp文件,看到该文件是以常规 UTF-8 编码的,这意味着文件以byte order mark (BOM)字符开头:

    Notepad++ - file encoded in UTF-8 WITH BOM

  2. 所以我点击了编码转换为没有BOM的UTF-8

    Notepad++: Encoding - Convert to UTF-8 without BOM

    注意:不要只切换到“在没有BOM的UTF-8中编码”,因为它会搞乱一些特殊字符(例如包含重音符号的字符等)。 )。所以转换它。

  3. 保存

  4. 问题消失了:NetBeans中再也没有报告错误:

    NetBeans - no errors reported anymore, problem solved

    我希望它能为其他人节省一些时间。

答案 2 :(得分:9)

我有同样的问题,但我认识到它在我改变了属性后出现 - > c ++编译器 - >编译行 - > -std = c ++ 11的其他选项。如果将设置更改为默认值,则“无法解析标识符”错误消失。

答案 3 :(得分:2)

我最近在OS X上遇到netbeans 8.0.2这个错误,但无法找到答案。

我通过卸载C / C ++插件解决了这个问题,当我重新打开netbeans时,它提示我修复代码帮助。'。

单击提示并让它运行问题已修复。

答案 4 :(得分:1)

我正在使用NetBeans 8.1,当我启动一个新的C ++项目时会出现同样的问题。它通过调试器运行项目后解决了自己。

答案 5 :(得分:0)

我们在一台计算机上开发代码并在另一台计算机上编译。在我将“构建主机”设置为远程计算机(在项目的右键单击菜单中)之前,我得到了这些令人分心的标记。

我仍然不确定开发计算机上的问题是什么,因为未解析的标识符来自标准库(size_tstd::vector等)并且这里的答案似乎没有帮助。

答案 6 :(得分:0)

我经常遇到这个错误,正如其他人提到的那样,通常我会添加空格字符,保存文件,删除空格字符......所有标识符都会被解决。

这一次没用。我的项目,我编译了数千次,并且它始终有效,在输入文本时突然崩溃了MPLAB X IDE v3.35(Mac OSX,但可能并不重要)。在此之后,我只有一个文件而只有一个结构,所有标识都没有解析。

profile.h文件中的结构是:

typedef struct
{
    int state;                      ///< state machine current state
    int enabled;                    ///< machine can be ENABLED or DISABLED
    int flag;                       ///< to initiate profile execution
   ... many variables here ...
    unsigned long timestamp;        ///< variable used for local timing
} profile_struct;

在我的profile.c文件中,来自此结构的任何变量都未解析,但项目已编译并正常工作。

经过一段令人沮丧的尝试后,这解决了我的问题:删除了整个MPLABX缓存目录。

就我而言,它位于:

/Users/USER_NAME/Library/Caches/mplab_ide/dev/v3.35/var

(需要删除整个&#39; var&#39;目录;当然要用您的用户名替换USER_NAME)

注意,&#39;图书馆&#39;是一个隐藏目录,但如果您启用查看隐藏文件,或者通过终端直接访问它,您仍然可以访问它。

最后,在您的计算机上,它可能位于其他地方。我通过使用终端命令观察,在过去2分钟内在我的计算机上修改了哪些文件,我发现了我:

/usr/bin/find /Users/USER_NAME/ -mmin -2 –ls

答案 7 :(得分:0)

发生这种情况时,我总是要重新安装MPLAB X.其他事情不时有效,但总是有效。

答案 8 :(得分:0)

三种解决Netbeans 12中“无法解析标识符”错误的方法。

  1. 右键单击“项目”。选择“代码协助”。干净的C / C ++ 缓存。重新启动IDE。
  2. 右键单击“项目属性” --->进行构建->在C / c ++编译器下,在每个C / C ++项目上将C和​​C ++编译器设置为相同的标准。
  3. 在工具下->选项-> C / C ++->代码协助,对于C ++ 14,将:__ cplusplus = 199711L更改为:__ cplusplus = 201402L,对于C ++ 11则更改为__cplusplus = 201103L

我意识到在解决自己的问题时,正确/对齐的括号可能会导致上述错误。确保牙套保持平衡和对齐。

答案 9 :(得分:0)

复制具有 NULL 比较的代码后,我遇到了同样的问题:

while (str1[i] != ’\0’) {
out[i] = str1[i];
i++;}

搜索了很多,结果发现奇怪的引用是问题所在, 我把它改成正常的',一切正常

while (str1[i] != '\0') {
out[i] = str1[i];
i++;}

答案 10 :(得分:-2)

试 单击右键按钮文件, 属性 - &gt;常规 - &gt;从代码辅助中排除(禁用)

答案 11 :(得分:-2)

一旦我将main.c重命名为main.cpp,我就工作了。

根据文件扩展名,Netbeans Code Assistance的行为会发生变化