Headerdateien?!

OP #5267211
Lesenswert?

Hallo,

mir ist aufgefallen das z.B Atmel Studio (evtl. auch andere Kompiler) 
die Headerdateien nicht jedes mal neu übersetzen / kompilieren.

Kann man das in den Headerdateien irgendwie verankern?
Der Kompiler soll jedes mal beim kompilieren, die Headers auch mit 
einbeziehen.

Danke im Voraus.
#5267219
Lesenswert?

@Jan H. (janiiix3)

>mir ist aufgefallen das z.B Atmel Studio (evtl. auch andere Kompiler)
>die Headerdateien nicht jedes mal neu übersetzen / kompilieren.

Nö, die werden so oder so nur per #inlcude in einen Quelltext 
eingebunden.
Und ALLEIN werden sie so oder so nicht compiliert.

Was du vermutlich meinst ist die Fähigkeit der meisten Compiler/IDEs, 
die Abhängigkeiten einer Datei zu erkennen und dieser nur dann neu zu 
kompilieren, wenn sich eben diese Dateien geändert haben.

>Kann man das in den Headerdateien irgendwie verankern?

Nö, das macht der Compiler selber.

>Der Kompiler soll jedes mal beim kompilieren, die Headers auch mit
>einbeziehen.

Das macht der schon, keine Sorge.
OP #5267222
Lesenswert?

Falk B. schrieb:
> @Jan H. (janiiix3)
>
>>mir ist aufgefallen das z.B Atmel Studio (evtl. auch andere Kompiler)
>>die Headerdateien nicht jedes mal neu übersetzen / kompilieren.
>
> Nö, die werden so oder so nur per #inlcude in einen Quelltext
> eingebunden.
> Und ALLEIN werden sie so oder so nicht compiliert.
>
> Was du vermutlich meinst ist die Fähigkeit der meisten Compiler/IDEs,
> die Abhängigkeiten einer Datei zu erkennen und dieser nur dann neu zu
> kompilieren, wenn sich eben diese Dateien geändert haben.
>
>>Kann man das in den Headerdateien irgendwie verankern?
>
> Nö, das macht der Compiler selber.
>
>>Der Kompiler soll jedes mal beim kompilieren, die Headers auch mit
>>einbeziehen.
>
> Das macht der schon, keine Sorge.

Habe mich gewundert. Habe mit den Macros "__TIME__" & "__DATE__" die 
Zeit und das Datum gespeichert und wundere mich heute, wieso da noch das 
alte Datum drin steht, habe das Projekt neu kompiliert.

Wollte eigentlich, wenn ich main() kompiliere, das dass aktuelle Datum 
drinn steht.
Persönliche Seite #5267274
Lesenswert?

Jan H. schrieb:
> Habe mit den Macros "__TIME__" & "__DATE__" die Zeit und das Datum
> gespeichert

Wo?

Deine *.c-Datei wird nicht neu übersetzt, nur weil sich das Datum 
ändert. Solange sie aber nicht neu übersetzt wird, stehen natürlich in 
der erzeugten Objektdatei die Werte für _TIME__ und __DATE_ drin, die 
zum Zeitpunkt des letzten Übersetzens drinstanten.

Diese beiden "Macros" kommen übrigens nicht aus einer Headerdatei, 
sondern sind eine eingebaute Funktion des Compilers.
Gast #5267294
Lesenswert?

Falk B. schrieb:
> Ein einfaches clean + build all würde das Problem auch lösen ;-)

Korrekt ;)

Ich war als Anfänger auch verwirrt. Vor allem, weil nur nach dem 
abspeichern die Meckermeldung

>#warning F_CPU not defined!

kam. Bei erneutem kompilieren war das weg. Dadurch hatte ich 
herausgefunden, dass im Atmel-Studio nur neu kompiliert wird, wenn sich 
die Headerdatei auch geändert hat.

Daher braucht dich das nicht weiter interessieren. Der Compiler macht 
das schon. Einfach auf kompilieren drücken und gut ist. Du brauchst also 
kein "clean" zu verwenden, außer du willst das explizit :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren