Forum: Compiler & IDEs Include-Problem(chen)


von mike (Gast)


Lesenswert?

Hallo,

ich weis nicht wie folgendes richtig funktioniert:

Ich habe ein Verzeichnis '...\Headers'. Hier sind diverse .h files drin. 
Im Compiler search path steht ebenfalls '....\Headers'.
Jetzt ist ein Unterverzeichnis hinzugekommen, welches foo.h und bar.h 
enthält.
Im Code mache ich ein:
1
#include <foo.h>

Jetzt wird aber in foo.h
1
#include <bar.h>
2
#include <manyothers.h>

aufgerufen und mein Compiler beschwert sich mit:

bar.h:No such file or directory

Was mache ich falsch?

von Timmo H. (masterfx)


Lesenswert?

Du musst den Unterordner in "...\Headers" auch in den Include-Pfad mit 
aufnehmen oder direkt beim Includen den Pfad mit angeben. Also z.B.
1
#include <blubb\bla.h>

von mike (Gast)


Lesenswert?

...da hatte ich mich oben im Post verschrieben

ich mach natürlich ein:
1
#include <blubb/foo.h>

von Timmo H. (masterfx)


Lesenswert?

Ja du musst in foo.h aber auch
1
#inlcude <blubb/bar.h>
schreiben

von mike (Gast)


Lesenswert?

An so etwas dachte ich auch, aber da die inculde Dateien von einem 
Anbieter kommen und es sich nicht nur um 2 oder 3 Einträge handelt - 
habe ich keine Lust dazu...

Die einzige Alternative die ich sehe ist, alle Dateien in das include 
Hauptverzeichniss zu kopieren aber dann ist die 'schöne' Ordnung 
dahin...!

von Timmo H. (masterfx)


Lesenswert?

Oder wie gesagt den Unterordner "blubb" mit in den Include-Pfad 
aufnehmen.

von Bernd S. (bernds1)


Lesenswert?

mike schrieb:
> Die einzige Alternative die ich sehe ist, alle Dateien in das include
> Hauptverzeichniss zu kopieren aber dann ist die 'schöne' Ordnung
> dahin...!

Warum ist de Ordnung dahin?

Timmo H. schrieb:
> Du musst den Unterordner in "...\Headers" auch in den Include-Pfad mit
> aufnehmen

Mach's doch einfach so, wie es Timmo schon geschrieben hat.

P.S.: Sorry, Timmo, ich war schneller :-))

von cppler (Gast)


Lesenswert?

Wenn Du in Deinem Projektordner die Header in einem Extraordner headers 
abgelegt hast geht das i.d.R. so:
1
#include "headers/myheader.h"
Die Anführungszeichen sagen dem Compiler im aktuellen Verzeichnis zu 
suchen statt in den Standardpfaden wie bei:
1
#include <stdio.h>

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
Noch kein Account? Hier anmelden.