2013-07-27 5 views
6

Hallo Ich habe ein Embedded-C-Projekt und alle grundlegenden C-Bibliotheken werden in einem externen Ordner (nicht im Arbeitsbereich) gespeichert. Ich kann kompilieren, da der Compiler weiß, wo für diese Dateien zu suchen, aber Eclipse-weiß nicht, dass diese Dateien existieren, und ich bekomme Fehlermeldungen: rightClickOnProject->Properties->C/C++ Include Paths and Symbols -> Add External Include PathEclipse-Kepler CDT sind externe Header-Dateien/hinzufügen Externe Pfad einschließen rekursiv (mit Unterordnern)

Zum Beispiel: enter image description here

ich manuell einen Ordner mit Video! die Datei <stdint.h> befindet sich in dem Ordner befindet C:\embARM7\yagarto\arm-elf\include so kann ich folgendes:

enter image description here

Dies löst das eclipse-Fehlermarker für <stdint.h>

Aber die Datei <stdio.h> im Ordner C:\embARM7\yagarto\arm-elf\include\sys befindet, und ich muss den gesamten Prozess machen wieder für:

enter image description here

Nun ist die nächste Header-Datei in C:\embARM7\yagarto\arm-elf\include\machine befindet und so weiter und so fort. ...

Meine Frage ist: Gibt es eine Möglichkeit, einen externen Include-Pfad mit allen Unterordnern hinzuzufügen? Art von „diesem Ordner hinzufügen und alle Unterordner“/„fügen Sie diesen Ordner rekursiv“. Wie C:\embARM7\yagarto\arm-elf\include\* so, dass ich nicht manuell jeden Ordner in der Ordnerstruktur hinzufügen. Für ein Projekt sind das 5 Minuten, aber ich muss es für 10 Projekte tun und diese Arbeit ist irgendwie nervig.

Dank

+0

Ich habe die gleichen Probleme mit der sehr häufig: 'C:/xxx/Cygwin/usr/include' wo alle internen Verzeichnisse wie' libxml2' sind nicht enthalten. Keine Lösung noch. – Alex

Antwort

1

Ich habe keine solche Option weder in Eclipse 3,7-4,3 noch in MS VS2012 gefunden. Anscheinend besteht die Problemumgehung darin, ein Skript in einer beliebigen Sprache zu schreiben, die den rekursiven Pfad für Sie generiert.

Für Eclipse können Sie eine .xml-Datei mit Projekteinstellungen schreiben und dann importieren (Projekteigenschaften -> C/C++ Allgemein -> Pfade und Symbole -> Einstellungen importieren ...). Um eine Vorstellung von der Struktur dieser Datei zu erhalten, sollten Sie zunächst Ihre aktuellen Projekteinstellungen exportieren.

6

ich stieß auch auf der gleichen Ausgabe, während Satz externer Header in mein Projekt hinzuzufügen. Stattdessen sind Pfade und Symbole in den Projekteigenschaften zu verwenden, habe ich mein Projekt einen Link in das Stammverzeichnis, das alle externen Header in seinem Unterverzeichnis enthält. Dies ist, wie es geht:

  1. rightClickOnProject->New->Folder,
  2. Klicken Sie auf Advanced Button im New Folder Dialogfeld
  3. wählen Link to alternate location Option Feld
  4. Durchsuchen Sie Ihr Root-Verzeichnis alle Header enthält, und
  5. Hit the Finish Taste.

Prost

+0

Das Problem bei diesem Ansatz besteht darin, dass Sie, wenn sich Dateien im Link-Ordner befinden, die noch unerfüllte Abhängigkeiten haben, diese Abhängigkeiten zuerst lösen müssen, um mit Ihrer Entwicklung fortfahren zu können, unabhängig davon, ob Sie diese Dateien benötigen. Beispiel wenn der Link-Ordner eine Header-Datei "header1.h" einschließlich einer anderen Header-Datei "header2.h" hat, dann muss man sicherstellen, dass header2.h verfügbar ist, unabhängig davon, ob Sie header1.h in Ihre Quelle aufnehmen oder nicht Datei. Ich denke, Eclipse analysiert alle Dateien, die im Link-Ordner vorhanden sind. Dies ist nicht der Fall, wenn Sie External Path-Include verwenden. – infoclogged