Hallo ! ich verwende seit geraumer Zeit Eclipse-Luna+GCC und kann meine Projekte auf Basis eines Makefiles absolut fehlerfrei übersetzen. Da die Sourcedateien in zahlreichen verschiedenen Verzeichnissen liegen (es ist ein großes Projekt) muss ich mein eigenes Makefile benutzen (angeblich kann man das ja automatisch irgendwie machen). Das Make funktioniert in der Konsole und auch unter Eclipse. Was mich ziemlich nervt: Eclipse zeigt in fast allen Sourcen die sich nicht im root-Verzeichnis befinden rote "Fehler" an, die entstehen, weil es die h-Files nicht findet. Auch nach dem erfolgreichen Übersetzen gehen diese Fehlermarkierungen nicht weg. Die Frage: Woher weiß Eclipse überhaupt, wo es für diese "Onlineanalyse" nach Headern suchen soll? Scheinbar schaut es dabei nicht in das Makefile, sonst würde es ja funktionieren. Aber wo dann? Es kann ja nicht davon ausgehen, dass alle h-Files im root liegen. Meine Include Pfade zeigen im Makefile u.A auf third party Produkte, die nicht mal im Projektordner liegen. Für das Makefile kein Problem, aber diese roten Markierungen ...? Es gibt da so einen Indexer, dessen Funktionalität sich mir noch nicht so ganz erschlossen hat - hat es damit zu tun? Wo stelle ich das ein, oder wo kann ich das abdrehen, wenn es schon nicht funktioniert? Ich hoffe, hier eine Antwort zu bekommen, da ich am Ende meiner Weisheit angelangt bin...
Mach im Project-Explorer mal einen recht-Klick auf dein Project und dann auf "Properties". Da kann ich bei mir unter C/C++ Build einstellen, welche Verzeichnisse beim compilieren (und mehr ist die Fehlermarkierung beim bearbeiten ja auch nicht) mit eingebunden werden. Bei mir unter Properties->C/C++ Build->Tool Settings->IAR C/C++ Compiler for ARM->Preprocessor (Dürfte bei dir geringfügig anders heißen) Gruß Mike
Eclipse bzw. Das CDT Plugin durchsucht nur die Ordner, die du im Projekt eingestellt hast. Geh in die Properties des Projektes und trag dort die Includepfade ein. Das CDT Plugin parst nicht das Makefile
Stefan (Gast) schrieb: >Eclipse bzw. Das CDT Plugin durchsucht nur die Ordner, die du im Projekt >eingestellt hast. Genau. Dadurch kann man prima Cube einbinden ohne daß es zu Chaos kommt. Mit dem Indexer hatte ich Probleme mit einem C++ Projekt die ich nicht zuordnen konnte (Invalid arguments 'Candidates are: void sleep()). Mit ein bisschen experimentellem rumklicken ging's weg. Und damit man nicht immer wieder bei jedem neuen Projekt die gleichen Pfade für gewisse .h Files angeben muß, kann man sie in 'Path and Symbols' -> 'Export settings...' in ein XML File schreiben und danach wieder importieren. Noch nen Tip für nen ähnlichen Fall: Ausgeblendete C-Files. Wenn du HAL nutzt und zugehörige .c Dateien mit einem durchgestrichenen Icon hast, dann gehören sie nicht zum Projekt obwohl sie im Projektordner liegen. Wenn du sie einbinden möchtest, dann: Properties -> C/C++ General -> Path and Symbols -> Reiter 'Source location' -> Pfad in "Source folders on build path" anklicken -> Edit filter... -> mit Remove die Datei aus dem Filter entfernen. Nun findet man sie aktiv im Verzeichnisbaum.
Makefiles lesen ist für eine Entwicklungsumgebung quasi unmöglich, die sind viel zu generisch. Die Pfade muss man schon per Hand einstellen.
Eclipse kann die Ausgabe beim build parsen und damit alle Include-Pfade und defines automatisch ermitteln und sich somit selbst konfigurieren. Man muss da also nix von Hand einstellen. Nur den build-output-parser zur Mitarbeit überreden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.