Подтвердить что ты не робот

Netbeans 7.2 показывает "Невозможно разрешить идентификатор", хотя сборка выполнена успешно

Я использую Netbeans IDE 7.2 с плагином C/С++ (последняя версия 1.18.1.1) и если я строю свой проект, все в порядке, но IDE показывает мне ошибки (например, не удается разрешить идентификатор...)

У кого-нибудь еще есть эта ошибка и как я могу ее решить?

4b9b3361

Ответ 1

Вот отрывок из моего ответа на другой вопрос.

Неразрешенный идентификатор

Если источник .cpp файла выглядит так:

enter image description here

Нажмите правой кнопкой мыши в своем проекте.
Проверьте C/C++ Code As...
Запустите Reparse Project.

enter image description here

Если этого недостаточно.
Перейдите к Project Properties
Заполните поле ввода Include, как описано.

enter image description here

Установите правильный путь включения.

Я надеюсь, что это может вам помочь.

Ответ 2

TL; DR

Спецификация UTF-8 WITH также может вызвать проблемы.

ПРОБЛЕМА

У меня была одна и та же проблема, и я попробовал множество возможных решений, но никто из них не работал, пока не выяснил источник проблемы, что было немного смешно. Я знаю, что на этот вопрос уже был дан ответ, но я записываю свое решение, возможно, оно решит проблему другого, страдающего от той же проблемы.

Например, я получил "Невозможно разрешить идентификатор Vector" при определении struct Vector, хотя это было правильно:

Unable to resolve identifier Vector

У меня появилось много ошибок, подобных этому при объявлении/определении функций и т.д. Кроме того, моя помощь по коду не работала из-за количества ошибок.

Решение

  • Я открыл файл .cpp в Notepad ++ и увидел, что файл был закодирован в обычном режиме UTF-8, что означает, что файл начинается с символа byte order (BOM):

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

  • Итак, я нажал Encoding → Преобразовать в UTF-8 без спецификации:

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

    Примечание. Не используйте только "Кодировать в UTF-8 без спецификации", потому что это может испортить некоторые специальные символы (например, символы, содержащие акценты и т.д.). Поэтому преобразуйте его.

  • Сохранить

  • Проблема исчезла: в NetBeans больше не сообщается об ошибках:

    NetBeans - no errors reported anymore, problem solved

    Надеюсь, это тоже поможет кому-то еще.

Ответ 3

У меня была та же проблема, но я узнал, что она появляется после того, как я изменил свойства → С++ compiler → Линия компиляции → дополнительные параметры для -std = С++ 11. если изменить настройки по умолчанию, ошибка "неспособность разрешить идентификатор" исчезает.

Ответ 4

Недавно я получил эту ошибку с netbeans 8.0.2 на OS X и не смог найти ответ, что делать.

Я решил проблему, удалив подключаемый модуль C/С++, когда я снова открыл netbeans, и это побудило меня "исправить помощь с помощью кода...".

Щелкнув подсказку и разрешив запустить эту проблему, была исправлена.

Ответ 5

Мы разрабатываем наш код на одном компьютере и компилируем его на другом. Я получал эти отвлекающие разметки, пока не "установил сборку хоста" на удаленный компьютер (в контекстном меню для проекта).

Я все еще не уверен, что проблема на компьютере разработки, поскольку нерешенные идентификаторы были вещами из стандартной библиотеки (size_t, std::vector и т.д.), и ответы здесь, похоже, не помогли.

Ответ 6

попробовать Щелкните правой кнопкой мыши файл, Свойства- > Общие- > Исключить из помощи кода (отключить)

Ответ 7

Шахта работала, как только я переименовал my main.c в main.cpp.

Основываясь на расширении файла, поведение изменения кода Netbeans Code

Ответ 8

У меня часто возникает эта ошибка, и, как упоминалось выше, обычно я добавляю символ пробела, сохраняю файл, удаляю символ пробела... и все идентификаторы решаются.

На этот раз это не сработало. Мой проект, который я скомпилировал тысячу раз, и он всегда работал, внезапно разбил 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

(необходимо удалить весь каталог "var" и, конечно же, заменить USER_NAME на ваше имя пользователя)

Обратите внимание, что "Библиотека" является скрытым каталогом, но вы можете получить к ней доступ, если вы включите просмотр скрытых файлов или перейдете к нему через терминал.

Наконец, на вашем компьютере это может быть где-то еще. Я нашел свое, наблюдая, какие файлы были изменены на моем компьютере за последние 2 минуты, используя команду терминала:

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

Ответ 9

Мне всегда нужно переустанавливать MPLAB X, когда это происходит. Другие вещи работают время от времени, но это всегда работает.

Ответ 10

Я использую NetBeans 8.1, и эта же проблема возникла, когда я начал новый проект на С++. Он решил сам после запуска проекта через отладчик.