Eclipse CDT "Символ NULL не может быть разрешен" - PullRequest
26 голосов
/ 15 сентября 2011

Я только что установил Eclipse CDT с MinGW.Все переменные окружения установлены, включены и т. Д. Попробовал запустить hello world, и все вроде бы нормально.

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

Symbol 'NULL' could not be resolved

Есть идеи?Спасибо!

Ответы [ 11 ]

37 голосов
/ 15 сентября 2011

NULL обычно определяется в stddef.h.Этот файл также обычно включается в stdlib.h и stdio.h.

И вы всегда можете сделать это:

#ifndef NULL
#define NULL   ((void *) 0)
#endif
17 голосов
/ 19 июня 2012

Как уже упоминал Боб, я исправляю ошибку, просто перестроив индекс

  1. прямо в вашем проекте
  2. выберите "Index"
  3. выберите "Rebuild"
5 голосов
/ 01 июня 2012

У меня была та же проблема: мой make-файл работал нормально, но я получал ошибки, подобные вашей, из представления Eclipse CDT.

Я закрыл текущий проект, я открыл новый «Makefile проект с существующим кодом», указав правильное местоположение источника моего проекта. После этого я проверил, что: щелчок правой кнопкой мыши по проекту / C ++ general / Пути и символы / Gnu C ++ / include-каталоги не пусты и содержат правильные пути моего проекта.

Затем я перестроил индекс (щелкнув правой кнопкой мыши / index / rebuild).

Кроме того, я использую Eclipse CDT 7, а не Eclipse CDT 8, потому что CDT8 иногда выдает мне ошибки компиляции из графического интерфейса, которые я не могу устранить, даже если с make-файлом все в порядке.

2 голосов
/ 13 августа 2013
  • причина:

NULL определено в stddef.h, но stddef.h в xxx/include/linux не xxx/include

-> даже если у вас естьдобавил MingW xxx/include, все еще не может найти NULL

  • решение:

добавьте ваш путь MingW include/linux к вашему проекту

  • referer

(1) Пример пути include/linux моего кросс-компилятора xscale: /opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/linux

added GNU C++ include linux path

(2) mypost: Затмение Ubuntu: Символ 'NULL' не может быть разрешен

1 голос
/ 19 июля 2014

Я думаю, что вы не добавили заголовочный файл, который определяет NULL .Добавьте stdlib.h (оператор #include).он определяет макросы NULL.

1 голос
/ 05 июля 2014

Я только что исправил такую ​​ошибку и подумал, что никто другой не нашел это решение, поэтому я опубликую его. Я обнаружил, что stdlib объявил NULL как ___need_NULL в моем компиляторе AVR GCC. Это вызвало ошибку в Eclipse IDE. Ошибка, однако, была вызвана тем, что Coden Analysis не обнаружил аномалию и настолько разозлился, что не удалось найти символ. Вы можете отключить Coden в настройках в разделе «General -> Startup / Shutdown» или изменить его поведение в C / C ++. Анализ кода.

Это может объяснить случайную природу, которую испытывают другие

0 голосов
/ 20 апреля 2018

Ничто из предложенного выше не помогло мне.Каждый раз при открытии файла exclipse сообщает о десятках ошибок.

Что помогло в итоге: закрытие всех файлов, затем удаление ошибок вручную (щелкните правой кнопкой мыши по списку ошибок в окне «Проблемы»), а затем выполните восстановлениеиндекс.

0 голосов
/ 29 июня 2016

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

0 голосов
/ 07 июля 2015

Просто добавьте C:\MinWG\lib к путям библиотек Eclipse.

0 голосов
/ 20 июня 2013

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

...