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

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

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

58

Решение

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

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

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

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

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

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

97

Другие решения

TL; DR

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

ПРОБЛЕМА

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

Например, я получил «Не удалось разрешить идентификатор Vector» при определении struct Vectorпока это было правильно

Невозможно разрешить идентификатор Vector

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

РЕШЕНИЕ

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

    Notepad ++ - файл, закодированный в UTF-8 с спецификацией

  2. Итак, я нажал кодированиеКонвертировать в UTF-8 без спецификации:

    Notepad ++: Кодировка - преобразование в UTF-8 без спецификации

    Замечания: НЕ просто переключайтесь на «Кодировать в UTF-8 без BOM», потому что он может испортить некоторые специальные символы (например, символы, содержащие акценты и т. д.). Так перерабатывать Это.

  3. Сохранить

  4. Проблема устранена: в NetBeans больше не сообщается об ошибках:

    NetBeans - больше не сообщается об ошибках, проблема решена

    Надеюсь, это сэкономит время и кому-то еще.

8

У меня была такая же проблема, но я узнал, что она появляется после того, как я изменил свойства-> компилятор c ++ -> строка компиляции -> дополнительные опции для -std = c ++ 11. Если изменить настройки по умолчанию, ошибка «невозможно определить идентификатор» исчезает.

7

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

Я решил проблему, удалив плагин C / C ++, и когда я снова открыл netbeans, мне предложили «исправить помощь кода».

После нажатия на приглашение и его запуска проблема была исправлена.

2

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

1

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

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

0

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

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

(необходимо стереть весь каталог ‘var’; и, конечно, заменить имя пользователя USER_NAME своим именем пользователя)

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

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

/usr/bin/find /Users/USER_NAME/ -mmin -2 –ls
0
По вопросам рекламы [email protected]