www.mikrocontroller.net

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


Autor: Hakan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hakan (Gast)
Datum:

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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, nur saublöde gestellt ist die, die Frage.

Autor: AVR-Fanboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vorcompilierte Header sind vorcompilierte Header. Reicht das als 
Antwort?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hakan (Gast)
Datum:

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

Autor: Das Christkind (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>vorcompilierte Header
Wie vorgekochtes Essen.
Nur noch aufwärmen.

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst du objektdateien (*.o)?

Autor: Hakan (Gast)
Datum:

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

Autor: Tommy S. (tommys)
Datum:

Bewertung
0 lesenswert
nicht 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...

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

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hakan (Gast)
Datum:

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

Autor: Björn R. (sushi)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Hakan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielan Dank an allen Beteiligten;-)

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.