Zum Inhalt springen

ccache

aus Wikipedia, der freien Enzyklopädie
{{#if: ccache | ccache | {{#invoke:WLink|getArticleBase}} }}

{{#if: |

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | {{{Logo}}} |
 {{#if: {{#invoke:Wikidata|claim|P154}} | 
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
 }}

}}{{#if: |

{{{Screenshot}}}{{#if: |
{{{Beschreibung}}} }}|

}}

Basisdaten

{{#if: |

Hauptentwickler
 {{#if: {{#invoke:Wikidata|claim|P126}} | 
Maintainer claim|P126|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

Entwickler
 {{#if: {{#invoke:Wikidata|claim|P178}} | 
Entwickler claim|P178|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

Erscheinungsjahr
 {{#if: {{#invoke:Wikidata|claim|P577}} | 
Erscheinungsjahr claim|P577|references=ja|list=, }} |
   {{#if: {{#invoke:Wikidata|claim|P571}} | 
Erscheinungsjahr claim|P571|references=ja|list=, }}
   }}
 }}

}}{{#ifeq: {{{AktuelleVersion}}} | KEINE_ANGABE || {{#if: |

Aktuelle Version
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format {{{AktuelleVersionFreigabeDatum}}} | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} | 
Aktuelle Version claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}}

}}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: |

Aktuelle Vorabversion
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} | 
Aktuelle Vorabversion claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}}

}}{{#if: |

Ausführungsumgebung
 {{#if: unixoide | 
Betriebssystem unixoide |
   {{#if: {{#invoke:Wikidata|claim|P306}} | 
Betriebssystem claim|P306|parameter=link|references=ja|list=, }}
   }}
 }}

}}{{#if: |

Programmier­sprache
 {{#if: {{#invoke:Wikidata|claim|P277}} | 
Programmier­sprache claim|P277|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Compiler |

Kategorie Compiler

}}{{#if: GNU General Public License |

Lizenz GNU General Public License |
 {{#if: {{#invoke:Wikidata|claim|P275}} | 
Lizenz claim|P275|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

deutschsprachig faculty|0}} | ja | nein }}

}}{{#if: |

Sonstiges {{{Sonstiges}}}Vorlage:Infobox Software/Wartung/Sonstiges

}}{{#if: https://ccache.dev |

https://ccache.dev |
 {{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} | 
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
 }}

}}{{#if: |

Dateien [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]

}}

ccache ist ein Computer-Programm, das das Produkt eines C/C++ Compilers zwischenspeichert (engl. ‚to cache‘), um somit das erneute Kompilieren desselben Quellcodes zu beschleunigen.

Der Quelltext eines Computerprogramms besteht üblicherweise aus mehreren Dateien (bei größeren Projekten können das mehrere hundert bis etliche tausend Dateien sein), die nicht alle gleichzeitig verändert werden. Sobald das Programm kompiliert wird, müssen jedoch alle Quelldateien einzeln in Objektdateien übersetzt werden. Da aber die unveränderten Dateien bereits in der Form, in der sie vorliegen, kompiliert wurden, wäre es nicht sinnvoll, sie erneut zu übersetzen (was viel Zeit kosten kann). Stattdessen benutzt ccache das bereits existierende Produkt.

Dafür wird es stets vor dem eigentlichen Compiler ausgeführt. Es prüft dabei, ob die zu kompilierende Datei bereits im Cache vorliegt, und ruft den Compiler erst dann auf, wenn dies nicht der Fall ist. Das Produkt (die Objektdatei) wird dann im Cache abgelegt, um beim nächsten Kompiliervorgang zur Verfügung zu stehen. Befindet sich eine kompilierte Datei im Cache, wird der Compiler nicht ausgeführt, stattdessen wird die Kopie aus dem Cache ins Arbeitsverzeichnis kopiert (restauriert).

ccache legt dabei großen Wert darauf, dass nicht versehentlich die falsche Version der Datei restauriert wird. Dazu wird beim Vergleich mit den zwischengespeicherten Dateien nicht nur auf den Dateinamen geachtet, sondern auf den Inhalt samt den inkludierten Header-Dateien. Dies schließt versehentliche falsche Cache-Hits aus, so dass immer dasselbe Endprodukt erzeugt wird, als hätte man alle Dateien neu kompiliert.

Siehe auch

Weblinks