Forum: Mikrocontroller und Digitale Elektronik Hilfe: was sind vorcompilierter Header?


von Hakan (Gast)


Lesenswert?

Hallo Leut,

was sind vorcompilierter header? welche Dateierweiterung (extension) 
haben
sie? wie merkt der Compiler dass solche fehlen?
Bedanke mich für jede Hilfe.
Hakan

von Hakan (Gast)


Lesenswert?

keiner weiss was? unmöglich. Wahrscheinlich ist dies ein Anfängerfrage 
oder?
Hakan

von Sven P. (Gast)


Lesenswert?

Nö, nur saublöde gestellt ist die, die Frage.

von AVR-Fanboy (Gast)


Lesenswert?

vorcompilierte Header sind vorcompilierte Header. Reicht das als 
Antwort?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Für den Rest musst du wohl das Manual deines Compilers lessen, denn
der ist es ja, der sie 1) anlegt und 2) benutzen will.

von Hakan (Gast)


Lesenswert?

soviel ich weiss man kann nur ein *.c Datei compilieren aber kein header
*.h ?
Hakan

von Das Christkind (Gast)


Lesenswert?

>vorcompilierte Header
Wie vorgekochtes Essen.
Nur noch aufwärmen.

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Meinst du objektdateien (*.o)?

von Hakan (Gast)


Lesenswert?

ist ein Lib-Datei oder? was hat es für eine Endung?
Hakan

von Tommy S. (tommys)


Lesenswert?

> Datum: 21.11.2008 17:25

> Datum: 21.11.2008 17:40

Wir haben es heute eilig...

Nun ja. Kann mich meinen Vorrednern aber sonst soweit nur anschließen. 
Ansonsten ist auch die Suchmaschine mit dem großen "G" recht hilfreich. 
z.B.:

http://www.google.de/search?hl=de&q=vorkompilierte+header&btnG=Google-Suche&meta=

Um mal den Einleitungssatz des ersten Treffers zu zitieren: "In diesem 
Artikel werde ich erklären, was vorkompilierte Header in Visual C++ sind 
und wie man sie benutzt."

Schönen Abend noch.
TommyS

von gast (Gast)


Lesenswert?

Probiers garnicht erst zu verstehen: Wenn du zu dumm bist um 
vorcompilierter Header in google einzutippen, dann wirst du die 
Erklärung die du dann finden würdest erst recht nicht verstehen.

von Hakan (Gast)


Lesenswert?

Danke Thomas. habe gegoogelt mit vorcompiliert nicht mit voKompiliert 
"c","k",
Hakan

von Björn R. (sushi)


Lesenswert?

In visual c++ haben diese dateien die endung *.pch...
Wozuz sie gut sein sollen weiß ich auch nicht. Bei mir trat der Fehler 
immer auf, wenn bei so einem von einem Wizard erzeugten Projekt die 
stdafx.h und die stdafx.c gelöscht hat. Hat man die restliche Dateien 
dann aber einem leeren Projekt hinzugefügt, kompilierte er dies ganz 
normal. Naja die Experten bei MS werden schon wissen was sie machen. 
habe mal gehört, die Hälfte der ursprünglichen Win95-Entwickler ist 
früher oder später im Irrenhaus gelandet...

von Hakan (Gast)


Lesenswert?

vielan Dank an allen Beteiligten;-)

habe das ganze auf CBuilder 6.0 erfolgreich portiert ohne VC++ Mekkerei.
Hakan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Björn R. wrote:

> Wozuz sie gut sein sollen weiß ich auch nicht.

Vermutlich insbesondere bei C++, damit man das teilweise recht
aufwändige Parsen all der Deklarationen in den Headern nicht immer
wieder aufs Neue machen muss.  Vor allem bei Bloatware kommen da
sicher schnell einige hundert Headers pro C++-Quelldatei (also pro
`translation unit') zusammen.  Wenn der Compiler nun für alle
System-Headers (also alles, was mit #include <> arbeitet statt mit
#include "") zuerst nach einer vorcompilierten Datei sucht, in der
er die Deklarationen bspw. als 1:1-Speicherabzug des Syntaxbaums
abgelegt hat, kann man das Compilieren sicher beschleunigen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jörg hat das ganz gut beschrieben. Arbeitet man mit sehr großen 
Klassenbibliotheken --GUI-Frameworks sind schöne Beispiele dafür--, dann 
kann die Verwendung präcompilierter Headerdateien die Übersetzungszeiten 
recht erheblich beschleunigen (außer natürlich den allerersten 
Durchlauf).

Wenn man Windows-Applikationen erstellt, dann kann das sogar bei reinen 
C-Programmen, die nur die Win32-API nutzen, etwas bringen, ist doch das 
Windows-SDK derart strukturiert, daß ein #include <windows.h> alles ist, 
was man einbinden muss, damit zigtausende Definitionen etc. bekannt 
sind. Da das jedesmal dasselbe ist, kann man durch Abspeichern des 
"vorverdauten Krempels" einiges an Zeit einsparen.

Bei MFC-Anwendungen wird standardmäßig in alle Übersetzungseinheiten 
eine "stdafx.h" eingebunden, die als präcompilierte Headerdatei 
verwendet wird. Alles, was zusätzlich zur MFC von mehreren/allen 
Übersetzungseinheiten benötigt wird, sollte daher in dieser Datei 
definiert/eingebunden werden. So bekommt man trotz MFC erträgliche 
Übersetzungszeiten auch bei einem "build all".

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.