wake-up-neo.com

Eclipse CDT "Symbol NULL konnte nicht aufgelöst werden"

Ich habe gerade EclipseCDT mit MinGW..__ installiert. Alle Umgebungsvariablen werden festgelegt, umfasst usw. Versucht, eine Hallo-Welt auszuführen, scheint alles in Ordnung zu sein.

Ich habe versucht, ein C-Projekt zu laden, das ich zuvor in meinem Computer hatte. Es scheint alles gut zu laden. Ich erhalte jedoch die folgende Fehlermeldung mit dem NULL-Symbol:

Symbol 'NULL' could not be resolved

Irgendwelche Erkenntnisse? Vielen Dank!

25
Alex

NULL wird normalerweise in stddef.h definiert. Diese Datei ist normalerweise auch in stdlib.h und stdio.h enthalten.

Und du könntest das immer tun: 

#ifndef NULL
#define NULL   ((void *) 0)
#endif
35
Man Vs Code

Wie Bob erwähnte, behebe ich den Fehler, indem ich den Index neu aufbaute

  1. richtige dein Projekt
  2. wähle "Index"
  3. wähle "Rebuild"
16
David

Ich hatte das gleiche Problem: Mein Makefile lief einwandfrei, aber ich erhielt Fehler wie die Ihre in der Eclipse-CDT-Ansicht. 

Ich habe das aktuelle Projekt geschlossen, ein neues "Makefile-Projekt mit vorhandenem Code" geöffnet und den richtigen Speicherort für das Projekt angegeben. Danach habe ich Folgendes überprüft: Rechtsklick Projekt/C++ Allgemeines/Pfade und Symbole/Gnu C++/Include-Verzeichnisse sind nicht leer und enthalten die korrekten Pfade meines Projekts.

Dann habe ich den Index neu erstellt (Rechtsklick/Index/Neuerstellung).

Außerdem verwende ich Eclipse CDT 7 und nicht Eclipse CDT 8, da mir CDT8 manchmal Fehler von der GUI kompiliert, die ich nicht lösen konnte, obwohl das Makefile in Ordnung war.

5
Bob Yoplait
  • grund ist:

NULL in stddef.h definiert, aber stddef.h ist in xxx/include/linux nicht xxx/include

-> Auch wenn Sie MingWs xxx/include hinzugefügt haben, kann NULL immer noch nicht gefunden werden.

  • die Lösung ist:

fügen Sie Ihrem Projekt den include/linux-Pfad Ihrer MingW hinzu 

  • referer

(1) Der include/linux-Pfad meines xscale-Crosscompilers lautet: /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) mein Beitrag: Ubuntu Eclipse: Symbol 'NULL' konnte nicht aufgelöst werden

2
crifan

Ich habe gerade einen Fehler wie diesen behoben und dachte, da niemand sonst diese Lösung gefunden hätte, würde ich ihn posten. Ich habe festgestellt, dass die stdlib in meinem AVR GCC-Compiler NULL als ___need_NULL deklariert hat. Dies führte zu einem Fehler in der Eclipse-IDE. Der Fehler wurde jedoch dadurch verursacht, dass die Codenanalyse die Anomalie nicht gefunden hat und so geflügelt wurde, dass das Symbol nicht gefunden werden konnte. Sie können Coden in den Voreinstellungen unter "Allgemein -> Starten/Herunterfahren" deaktivieren oder dessen Verhalten in der C/C++ - Codeanalyse ändern.

Dies kann die manchmal zufällige Natur erklären, die andere erleben 

1
richendes

Ich denke, Sie haben keine Header-Datei hinzugefügt, dieNULLdefiniert. Fügen Sie stdlib.h hinzu (#include-Anweisung). Es definiert NULL-Makros.

1
BrettWatts

Ich stoße auch auf ein ähnliches Problem: "Symbol Elfmagie konnte nicht gelöst werden", und der Elfheader wurde bereits eingefügt. Ich denke, dass das Problem durch den Bibliothekscache verursacht werden kann. Durch das Neustarten von Software kann das Problem gelöst werden. Danke für die Hilfe anderer. 

0
user6528152

Ich habe hier nach Antworten gesucht, weil ich herausfand, dass CDT die Kopfzeilen der Standardbibliothek manchmal nicht auflösen kann. Ich weiß immer noch nicht warum und wie ich den Fehler reproduzieren kann. Starten Sie einfach CDT neu und alles ist gelöst.

0
Adrián Pérez

Ich hatte den gleichen Fehler und habe ihn behoben, indem Sie mit der rechten Maustaste auf Ihr Projekt geklickt haben, den Mauszeiger über die Indexregisterkarte bewegen und auf Neu erstellen klicken. Meine Fehler sind danach verschwunden.

0
Cwells

nichts von den oben genannten Vorschlägen half mir. Jedes Mal, wenn eine Datei geöffnet wird, meldet der Ausschluss Dutzende von Fehlern.

Was am Ende geholfen hat: Schließen Sie alle Dateien und löschen Sie die Fehler manuell (klicken Sie mit der rechten Maustaste auf die Fehlerliste im Fenster "Probleme"), und erstellen Sie dann einen Index neu.

0
humfry

Fügen Sie einfach C:\MinWG\lib zu den Bibliothekspfaden der Eclipse hinzu.

0
Tom Brito