Forum: Mikrocontroller und Digitale Elektronik Pfad für Include Dateien definieren


von Thomas S. (thomass)


Lesenswert?

@all,

ich habe AVR Studio und Win AVR Gcc.
Ich programmiere in C.
Nun habe ich folgendes vor.
Ich habe einige *.h files die ich selbst erstellt habe und möchte diese 
immer im Ordner des jeweiligen Projektes kopieren damit jedes Projekt 
eine seperate *.h hat.
Bisher habe ich diese immer mit
1
#include <C:\ .... \*.h>
eingebunden.
Da es sich jedoch um mehrere Dateien handelt würde ich den Pfad gerne 
definieren damit ich da wo der Pfad stehen soll nur noch einen 
Platzhalter einfügen muss.
Ich habe schon versucht mit define den Pfad zu definieren und dann in 
der include Zeile anstatt des Pfades den Platzhalter einzufügen jedoch 
klappt es irgentwie nicht.
Vermutlich muss ich zwischen den <> Klammern noch etwas einfügen.

Danke

Thomas

von Karl H. (kbuchegg)


Lesenswert?

Thomas S. wrote:
> @all,
>
> ich habe AVR Studio und Win AVR Gcc.
> Ich programmiere in C.
> Nun habe ich folgendes vor.
> Ich habe einige *.h files die ich selbst erstellt habe und möchte diese
> immer im Ordner des jeweiligen Projektes kopieren damit jedes Projekt
> eine seperate *.h hat.
> Bisher habe ich diese immer mit
>
1
#include <C:\ .... \*.h>
> eingebunden.
> Da es sich jedoch um mehrere Dateien handelt würde ich den Pfad gerne
> definieren damit ich da wo der Pfad stehen soll nur noch einen
> Platzhalter einfügen muss.

??
Ich denke, du willst die Header Dateien zum jeweiligen Projektver-
zeichnis umkopieren und nicht in allen Projekten Verweise in
jeweils das gleiche Directory mit den Header Files haben.

Was denn nu?

> Ich habe schon versucht mit define den Pfad zu definieren und dann in
> der include Zeile anstatt des Pfades den Platzhalter einzufügen jedoch
> klappt es irgentwie nicht.
> Vermutlich muss ich zwischen den <> Klammern noch etwas einfügen.

Nein. Das wird so nichts.
Aber Compiler haben eine Direktive beim Aufruf mit der man
zusätzliche Verzeichnisse angeben kann, die zusätzlich
auf fehlende Header Files hin abgesucht werden sollen.

von Thomas S. (thomass)


Lesenswert?

@Karl heinz Buchegger,

OK, eventuell etwas verzwickt geschrieben.

Also bis jetzt habe ich diese *.H Dateien immer in der Projektordner 
kopiert in einem eigenen Verzeichnis

c:\Projekte\Projektname\                      --> Projektordner
c:\Projekte\Projektname\Header\               --> Headerfiles

Nun habe ich immer im Projekt die Headerfiles wie folgt eingefügt:
1
#include <c:\Projekte\Projektname\Header\1.h>
2
#include <c:\Projekte\Projektname\Header\2.h>
3
#include <c:\Projekte\Projektname\Header\3.h>

Was ich nun machen will ist den Pfad zu definieren.
Ich habe mir das so gedacht.
1
#define pfad "c:\Projekte\Projektname\Header\"
2
3
#include <pfad1.h
4
#include <"pfad"2.h
5
#include <???????????3.h>

So habe ich es mir vorgestellt, dass ich nur noch an einer Stelle den 
Pfad eingeben muss.

Thomas

von Karl H. (kbuchegg)


Lesenswert?

Thomas S. wrote:
> Nun habe ich immer im Projekt die Headerfiles wie folgt eingefügt:
>
>
1
#include <c:\Projekte\Projektname\Header\1.h>
2
> #include <c:\Projekte\Projektname\Header\2.h>
3
> #include <c:\Projekte\Projektname\Header\3.h>
>
> Was ich nun machen will ist den Pfad zu definieren.
> Ich habe mir das so gedacht.
>
1
#define pfad "c:\Projekte\Projektname\Header\"
2
> 
3
> #include <pfad1.h
4
> #include <"pfad"2.h
5
> #include <???????????3.h>
>
> So habe ich es mir vorgestellt

Das geht aber nicht.

Wie gesagt. Praktisch alle Compiler haben eine Commandline
Option, mit der man zusätzliche Directories angeben kann.

Da du mit AVR-Studio und WinAvr arbeitest:

Menüpunkt: Project
           Configuration Options

Im Dialog stellst du unter 'Include Directories' die zusätzlichen
Verzeichnisse ein, die der Compiler ebenfalls untersuchen soll,
wenn er ein Header File sucht.

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.