Re: GCC mit precompiled header?

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Christian Weisgerber (naddy_at_mips.inka.de)
Date: 16. Jun 2002


Mathias Waack <mathias_at_atoll-net.de> wrote:

> Note that GCC 3 allows you to use only one precompiled header at a time. If
> your project uses more than one precompiled header, write one new header that
> includes the others and precompile that new header.
>
> Also, fuer gewoehnlich enthaelt ein C++ Programm jede Menge Header...

Ich nehme an, das ist so gedacht, dass man eine Headerdatei anlegt,
in der alle Header aufgeführt werden, die sonst so eingebunden
werden. Diese Datei wird vorcompiliert und beim Bauen aller
Objektdateien mit -load-pch angegeben. Wird dann im Quelltext einer
der schon verarbeiteten Header eingebunden, bemerkt der Compiler
das und greift auf die vorverdaute Version zurück.

> A precompiled header can contain any code that a header can, including
> declarations and preprocessor macros, but not definitions. Keep the following
> points in mind:
>
> Fuer gewoehnlich enthaelt ein Header, insbesondere unter C++, jede Menge
> Definitionen, ich denke da zuerst an Templates und inline-Funktionen. D.h.,
> der gcc kann so ziemlich keinen Header der STL "precompilen"?

Für C macht die Vorgabe Sinn, weil dort Header normaler- und
sinnvollerweise eben nur Deklarationen beinhalten, aber keine
(Variablen-, Funktions-)Definitionen, bei Verarbeitung des Headers
also kein Speicher reserviert oder Code erzeugt wird.

Ich bin in C++ unbewandert, aber ich denke, es ist dort vergleichbar.
<Blätter> Die Tabellen im Stroustrup, was in Header gehört und was
nicht (§9.2.1), sehen jedenfalls so aus. Typ-, Template-, Inline-
Funktions-, Konstanten-, und Makro-"Definitionen" erzeugen weder
Code noch Daten.

-- 
Christian "naddy" Weisgerber                          naddy_at_mips.inka.de


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 16. Jun 2002 CEST