with Eclipse CDT «Символ NULL не может быть разрешен»




how to install mingw w64 on windows 10 (9)

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

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

Symbol 'NULL' could not be resolved

Какие-нибудь идеи? Спасибо!


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

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


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

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

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

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


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


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


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


  • причина такова:

NULL определяется в stddef.h , но stddef.h находится в xxx/include/linux не xxx/include

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

  • решение:

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

  • реферер

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

(2) мое сообщение: Ubuntu Eclipse: Символ «NULL» не может быть разрешен


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

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

#ifndef NULL
#define NULL   ((void *) 0)
#endif

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

  1. прямо ваш проект
  2. выберите «Индекс»
  3. выберите «Восстановить»

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





eclipse-cdt