GNU-Bearbeiter-Sammlung

GNU Compiler Collection (GCC) ist ein Bearbeiter-System, das durch das GNU-Projekt das Unterstützen verschiedener Programmiersprachen erzeugt ist. GCC ist ein Schlüsselbestandteil des GNUS toolchain. Sowie der offizielle Bearbeiter des unfertigen GNUS Betriebssystem seiend, ist GCC als der Standardbearbeiter durch den grössten Teil anderen modernen Unix ähnlichen Computers Betriebssysteme, einschließlich Linux, der BSD Familie und Mac OS X angenommen worden. Ein Hafen zu RISC OS ist auch umfassend in den letzten Jahren entwickelt worden. Es gibt auch einen alten (3.0) Hafen von GCC zu Plan9, unter seiner ANSI/POSIX Umgebung (MENSCHENAFFE) laufend. GCC ist auch für weit verwendetes Windows von Microsoft Betriebssysteme, und für den durch viele tragbare Geräte verwendeten ARM-Verarbeiter verfügbar.

GCC ist zu einem großen Angebot an Verarbeiter-Architekturen getragen worden, und wird als ein Werkzeug in kommerziellen, geschlossenen und Eigentumsquellsoftwareentwicklungsumgebungen weit aufmarschiert. GCC ist auch für am meisten eingebettete Plattformen verfügbar, einschließlich Symbian (hat gcce genannt), AMCC und Freescale Macht Architektur-basierte Chips. Der Bearbeiter kann ein großes Angebot an Plattformen, einschließlich Videospiel-Konsolen wie PlayStation 2 und Dreamcast ins Visier nehmen. Mehrere Gesellschaften machen ein Geschäft aus der Versorgung und dem Unterstützen GCC Häfen zu verschiedenen Plattformen, und Span-Hersteller betrachten heute einen GCC Hafen fast als notwendig für den Erfolg einer Architektur.

Ursprünglich genannt das GNU C Bearbeiter, weil es nur die C Programmiersprache behandelt hat, wurde GCC 1.0 1987 veröffentlicht, und der Bearbeiter wurde erweitert, um C ++ im Dezember dieses Jahres zu kompilieren. Vorderenden wurden später für das Ziel-C, Ziel-C ++, Fortran, Java, Ada entwickelt, und Gehen unter anderen.

Die Organisation zur Förderung freier Software (FSF) verteilt GCC laut der GNU-Lizenz der Breiten Öffentlichkeit (GNU GPL). GCC hat eine wichtige Rolle im Wachstum der kostenlosen Software, sowohl als ein Werkzeug als auch als ein Beispiel gespielt.

Geschichte

Der anfängliche Plan von Richard Stallman war, einen vorhandenen Bearbeiter vom Laboratorium von Lawrence Livermore vom Pastell bis C mit etwas Hilfe von Len Tower und anderen umzuschreiben. Stallman hat ein neues C Vorderende für den Bearbeiter von Livermore geschrieben, aber hat dann begriffen, dass er Megabytes des Stapel-Raums, einer Unmöglichkeit auf einem 68000 System von Unix mit nur 64K verlangt hat und beschlossen hat, dass er einen neuen Bearbeiter von Kratzer würde schreiben müssen. Keiner des Pastellbearbeiter-Codes hat in GCC geendet, obwohl Stallman wirklich das C Vorderende verwendet hat, das er geschrieben hatte.

GCC wurde zuerst am 22. März 1987 veröffentlicht, durch ftp von MIT verfügbar. Stallman wurde als der Autor verzeichnet, aber hat andere für ihre Beiträge, einschließlich Jack Davidsons und Christopher Frasers für die Idee zitiert, RTL als eine Zwischensprache, Paul Rubin zu verwenden, um den grössten Teil des Vorverarbeiters und Leonard Towers für "Teile des parser, des RTL Generators, der RTL Definitionen, und der Maschinenbeschreibung von Vax zu schreiben."

Vor 1991 hatte GCC 1.x einen Punkt der Stabilität erreicht, aber architektonische Beschränkungen haben viele gewünschte Verbesserungen verhindert, so hat der FSF Arbeit an GCC 2.x angefangen.

Da GCC unter dem GPL, Programmierer lizenziert wurde, die wollen in anderen Richtungen — besonders diejenigen arbeiten, die Schnittstellen für Sprachen anders schreiben, als C — frei waren, ihre eigene Gabel des Bearbeiters zu entwickeln (vorausgesetzt dass sie die Begriffe des GPL einschließlich seiner Voraussetzungen entsprechen, um Quellcode zu verteilen). Vielfache Gabeln haben sich ineffizient und unhandlich jedoch erwiesen, und die Schwierigkeit, durch das offizielle GCC-Projekt akzeptierte Arbeit zu bekommen, war für viele sehr enttäuschend. Der FSF hat solche nahe Kontrolle darauf behalten, was zur offiziellen Version von GCC 2.x hinzugefügt wurde, dass GCC als ein Beispiel des "Kathedrale"-Entwicklungsmodells im Aufsatz von Eric S. Raymond Die Kathedrale und der Basar verwendet wurde.

Mit der Ausgabe 4.4BSD 1994 ist GCC der Verzug-Bearbeiter für die meisten BSD Systeme geworden.

EGCS Gabel

1997 hat eine Gruppe von Entwicklern EGCS (Experimentelles/erhöhtes GNU-Bearbeiter-System) gebildet, um mehrere experimentelle Gabeln in ein einzelnes Projekt zu verschmelzen. Die Basis der Fusion war ein GCC zwischen den 2.7 und 2.81 Ausgaben genommener Entwicklungsschnellschuss. Projekte haben eingeschlossenen g77 (FORTRAN), PGCC (P5 vom Pentium optimierter GCC), viele C ++ Verbesserungen, und viele neue Architekturen und Betriebssystemvarianten verschmolzen.

EGCS Entwicklung hat sich beträchtlich kräftiger erwiesen als GCC Entwicklung so viel so dass der FSF offiziell Entwicklung auf ihrem GCC 2.x Bearbeiter gehalten hat, EGCS als die offizielle Version von GCC "gesegnet" hat und das EGCS-Projekt zum GCC maintainers im April 1999 ernannt hat. Außerdem hat das Projekt ausführlich das "Basar"-Modell über das "Kathedrale"-Modell angenommen. Mit der Ausgabe von GCC 2.95 im Juli 1999 wurden die zwei Projekte wieder vereinigt.

GCC wird jetzt von einer verschiedenen Gruppe von Programmierern von der ganzen Welt unter der Richtung eines Lenkungsausschusses aufrechterhalten.

Es ist zu mehr Arten von Verarbeitern und Betriebssystemen getragen worden als jeder andere Bearbeiter.

Entwicklung

GCC stabile Ausgabe

Die aktuelle stabile Version von GCC ist 4.7.0, der am 22. März 2012 veröffentlicht wurde.

GCC 4.6 Unterstützungen viele neue Objektive-C Eigenschaften, solcher, wie erklärt und synthetisiert Eigenschaften, punktieren Syntax, schnelle Enumeration, fakultative Protokoll-Methoden, Attribute der Methode/Protokolls/Klasse, Klassenerweiterungen und ein neues GNU-Ziel-C Laufzeit-API. Es unterstützt auch die Gehen Programmiersprache und schließt die Bibliothek ein, die vierfacher Präzision mathematische Funktionen auf Zielen zur Verfügung stellt, die den datatype unterstützen. Die Bibliothek wird verwendet, um den Typ im GNU Fortran auf solchen Zielen zur Verfügung zu stellen.

GCC verwendet viele Standardwerkzeuge in seinem, baust einschließlich Perl, Bison und andere allgemeine Werkzeuge Zu beugen. Außerdem verlangt es zurzeit, dass drei zusätzliche Bibliotheken anwesend sind, um zu bauen: GMP, MPC und MPFR. Einige Optimierungseigenschaften brauchen Extrabibliotheken, wie Parma Polyhedra Library oder Cloog (aber GCC konnte ohne sie gebaut werden).

Die vorherige Hauptversion, 4.5, wurde am 14. April 2010 am Anfang veröffentlicht (letzte geringe Version ist 4.5.3, veröffentlicht am 29. April 2011). Es hat mehrere geringe neue Eigenschaften (neue Ziele, neue Sprachdialekte) und einige neue Haupteigenschaften eingeschlossen:

  • Bindezeit-Optimierung optimiert über Gegenstand-Dateigrenzen, um die verbundene Dualzahl direkt zu verbessern. Bindezeit-Optimierung verlässt sich auf eine Zwischendatei, die die Anordnung von etwas-gimple-Darstellung enthält, die in die Gegenstand-Datei http://gcc.gnu.org/wiki/LinkTimeOptimization eingeschlossen ist. Die Datei wird neben der Gegenstand-Datei während der Quellkompilation erzeugt. Jede Quellkompilation erzeugt eine getrennte Gegenstand-Datei und Bindezeit-Helfer-Datei. Wenn die Gegenstand-Dateien verbunden werden, wird der Bearbeiter wieder durchgeführt und verwendet die Helfer-Dateien, um Code über die getrennt kompilierten Gegenstand-Dateien zu optimieren.
  • Plugins kann den GCC Bearbeiter direkt http://gcc.gnu.org/onlinedocs/gccint/Plugins.html erweitern. Plugins erlauben einem Aktienbearbeiter, zu spezifischen Bedürfnissen durch den Außencode geladen als plugins geschneidert zu werden. Zum Beispiel kann plugins hinzufügen, ersetzen, oder sogar Pässe des mittleren Endes entfernen, die auf Darstellungen von Gimple funktionieren. Mehrere GCC plugins sind bereits namentlich veröffentlicht worden:
  • TreeHydra, um mit Mozilla zu helfen, Entwicklung zu codieren
  • DragonEgg, um das GCC Vorderende mit LLVM zu verwenden
  • SCHMELZEN SIE (Seite, die GCC SCHMELZEN) zu ermöglichen, GCC Erweiterungen auf einer lispy bereichsspezifischen Sprache zu codieren, die starkes Muster-Zusammenbringen zur Verfügung stellt
  • MILEPOST CTuning, um Maschinenlerntechniken zu verwenden, um den Bearbeiter abzustimmen.

GCC Stamm

Der Stamm konzentriert den Hauptteil des Entwicklungsaufwandes, wo neue Eigenschaften durchgeführt und geprüft werden. Schließlich wird der Code vom Stamm die folgende Hauptausgabe von GCC mit der Version 4.8 werden.

Gebrauch

GCC wird häufig gewählt, um Software zu entwickeln, die erforderlich ist, auf einem großen Angebot an der Hardware und/oder den Betriebssystemen durchzuführen. Systemspezifische Bearbeiter, die durch die Hardware oder OS Verkäufer zur Verfügung gestellt sind, können sich wesentlich unterscheiden, sowohl den Quellcode der Software als auch die Schriften komplizierend, die den Bearbeiter anrufen, um es zu bauen. Mit GCC ist der grösste Teil des Bearbeiters dasselbe auf jeder Plattform, so codieren Sie nur, der ausführlich mit der Plattform spezifische Eigenschaften verwendet, muss für jedes System umgeschrieben werden.

Sprachen

Die normale Bearbeiter-Ausgabe 4.6 schließt Vorderenden für C , C ++ , Ziel-C , Fortran , Java , Ada (MÜCKE) ein, und Gehen Sie . Auch verfügbar, aber nicht im Standard sind Pascal , Quecksilber, Modula-2, Modula-3, PL/I, D , und VHDL . Eine populäre parallele Spracherweiterung, OpenMP, wird auch unterstützt.

Das Fortran Vorderende war vor der Version 4.0, die nur FORTRAN 77 unterstützt. In neueren Versionen, ist für das neue Vorderende fallen gelassen, das Fortran 95 und Teile von Fortran 2003 ebenso unterstützt. Da sich die späteren Standards von Fortran vereinigen, ist der F77 normale, standardentgegenkommende F77-Code auch standardentgegenkommender F90/95-Code, und kann so ohne Schwierigkeiten in gfortran kompiliert werden. Ein Vorderende für die KÄLTE war wegen eines Mangels an der Wartung fallen gelassen.

Einige experimentelle Zweige bestehen, um zusätzliche Sprachen, wie der GCC UPC Bearbeiter für die Vereinigte Parallele C zu unterstützen.

Architekturen

GCC Zielverarbeiter-Familien bezüglich der Version 4.3 schließen ein:

Kleiner bekannte in der Standardausgabe unterstützte Zielverarbeiter haben eingeschlossen:

  • 68HC11
  • A29K
  • KREISBOGEN
  • AVR32
  • D30V
  • DSP16xx
  • ETRAX CRIS
  • FR-30
  • FR-V
  • Intel i960
  • IP2000
  • M32R
  • MCORE
  • MIL-STD-1750A
  • MMIX
  • MN10200
  • MN10300
  • Motorola 88000
  • NS32K
  • TOLLEREI
  • Stormy16
  • V850
  • Xtensa

Zusätzliche Verarbeiter sind durch GCC Versionen aufrechterhalten getrennt von der FSF Version unterstützt worden:

  • Cortus APS3
  • D10V
  • EISC
  • eSi-RISC
  • Sechseck
  • LatticeMico32
  • LatticeMico8
  • MeP
  • MicroBlaze
  • Motorola 6809
  • MSP430
  • NEC SX Architektur
  • Nios II und Nios
  • OpenRISC 1200
  • PDP-10
  • PIC24/dsPIC
  • System/370
  • TIGCC (m68k Variante)
  • Z8000

Der gcj javanische Bearbeiter kann entweder eine heimische Maschinenspracharchitektur oder Java das Java der virtuellen Maschine bytecode ins Visier nehmen. Wenn man GCC zu einer neuen Plattform ins Visier wiedernimmt, wird das Urladeverfahren häufig verwendet.

Struktur

Die Außenschnittstelle von GCC ist für einen UNIX Bearbeiter allgemein normal. Benutzer rufen ein genanntes Fahrer-Programm an, der Befehl-Argumente interpretiert, entscheidet, welche Sprachbearbeiter, für jede Eingangsdatei zu verwenden, den Monteur auf ihrer Produktion führt, und dann vielleicht den linker führt, um eine ganze rechtskräftige Dualzahl zu erzeugen.

Jeder der Sprachbearbeiter ist ein getrenntes Programm, das Quellcode und Produktionsmaschinencode eingibt. Alle haben eine allgemeine innere Struktur. Ein prosprachigen Vorderende analysiert den Quellcode auf dieser Sprache grammatisch und erzeugt einen abstrakten Syntax-Baum ("Baum" für den kurzen).

Diese werden nötigenfalls zur Eingangsdarstellung des mittleren Endes, genannt ALLGEMEINE Form umgewandelt; das mittlere Ende gestaltet dann allmählich das Programm zu seiner Endform um. Bearbeiter-Optimierungen und statische Codeanalyse-Techniken (wie FORTIFY_SOURCE, eine Bearbeiter-Direktive, die versucht, einige Pufferüberschwemmungen zu entdecken) werden auf den Code angewandt. Diese arbeiten an vielfachen Darstellungen, größtenteils die mit der Architektur unabhängige GIMPLE Darstellung und die von der Architektur abhängige RTL Darstellung. Schließlich wird Maschinencode mit dem mit der Architektur spezifischen Muster erzeugt, das ursprünglich gestützt auf einem Algorithmus von Jack Davidson und Chris Fraser zusammenpasst.

GCC wird in erster Linie in C abgesehen von Teilen des Vorderendes von Ada geschrieben. Der Vertrieb schließt die Standardbibliotheken für Ada, C ++, und Java ein, dessen Code größtenteils auf jenen Sprachen geschrieben wird. Auf einigen Plattformen schließt der Vertrieb auch eine auf niedriger Stufe Laufzeitbibliothek, libgcc, geschrieben in einer Kombination von maschinenunabhängigem C und mit dem Verarbeiter spezifischem Maschinencode, entworfen in erster Linie ein, um arithmetische Operationen zu behandeln, die der Zielverarbeiter direkt nicht durchführen kann.

Im Mai 2010 hat sich der GCC Lenkungsausschuss dafür entschieden, Gebrauch eines C ++ Bearbeiter zu erlauben, GCC zu kompilieren. Der Bearbeiter wird in C plus eine Teilmenge von Eigenschaften von C ++ geschrieben. Insbesondere das wurde entschieden, so dass die Entwickler von GCC den "destructors" und "die generics" Eigenschaften von C ++ verwenden konnten.

Vorderenden

Frontends ändern sich innerlich, die Notwendigkeit habend, Bäume zu erzeugen, die durch den backend behandelt werden können. Zurzeit werden die parsers alle rekursiver Abstieg parsers handcodiert, obwohl es keinen Grund gibt, warum ein parser Generator seit neuen Vorderenden in der Zukunft nicht verwendet werden konnte (die Version 2 des C Bearbeiters hat gestützte Grammatik eines Bisons verwendet).

Bis neulich war die Baumdarstellung des Programms des Verarbeiters nicht völlig unabhängig, der ins Visier wird nimmt.

Die Bedeutung eines Baums war seit verschiedenen Sprachvorderenden etwas verschieden, und Vorderenden konnten ihre eigenen Baumcodes zur Verfügung stellen. Das wurde mit der Einführung von ALLGEMEINEN und GIMPLE, zwei neuen Formen von sprachunabhängigen Bäumen vereinfacht, die mit dem Advent von GCC 4.0 eingeführt wurden. ALLGEMEIN ist komplizierter, auf dem GCC 3.x Javas Zwischendarstellung des Vorderendes gestützt. GIMPLE ist ein vereinfachter ALLGEMEINER, in dem verschiedene Konstruktionen zu vielfachen GIMPLE Instruktionen gesenkt werden. Die C, C ++ und javanische Vorderenden erzeugen ALLGEMEIN direkt am Vorderende. Andere Vorderenden haben stattdessen verschiedene Zwischendarstellungen nach der Syntaxanalyse und wandeln diese zum ALLGEMEINEN um.

In jedem Fall sinkt der so genannte "gimplifier" dann diese kompliziertere Form ins einfachere hat GIMPLE-Form SSA-basiert, die die gemeinsame Sprache für eine Vielzahl der neuen starken Sprache - und mit der Architektur unabhängig global (Funktionsspielraum) Optimierungen ist.

ALLGEMEIN und GIMPLE

ALLGEMEIN ist eine als ein "mittleres Ende" verwendete Zwischendarstellungssprache, während man Quellcode in rechtskräftige Dualzahlen kompiliert. Eine Teilmenge, genannt GIMPLE, wird durch alle Vorderenden von GCC ins Visier genommen.

Die mittlere Bühne von GCC tut die ganze Codeanalyse und Optimierung, sowohl unabhängig von der kompilierten Sprache als auch unabhängig von der Zielarchitektur arbeitend, von der ALLGEMEINEN Darstellung anfangend und es ausbreitend, um Übertragungssprache Einzuschreiben. Die ALLGEMEINE Darstellung enthält nur die Teilmenge der befehlenden bis zum mittleren Ende optimierten Programmierkonstruktionen.

Im Umwandeln des Quellcodes zu GIMPLE werden komplizierte Ausdrücke in einen drei Adresscode mit vorläufigen Variablen gespalten. Diese Darstellung wurde durch die EINFACHE Darstellung begeistert, die im Bearbeiter von McCAT von Laurie J. Hendren vorgeschlagen ist, für die Analyse und Optimierung von befehlenden Programmen zu vereinfachen.

Optimierung

Optimierung kann während jeder Phase der Kompilation vorkommen, jedoch wird der Hauptteil von Optimierungen nach der Syntax und semantischen Analyse des Vorderendes und vor der Codegeneration des Zurückendes, so ein allgemeiner durchgeführt, wenn auch etwas widersprechend der Name für diesen Teil des Bearbeiters "Mitte des Mais ist."

Der genaue Satz von GCC Optimierungen ändert sich von der Ausgabe bis Ausgabe, wie es sich entwickelt, aber die Standardalgorithmen, wie Schleife-Optimierung, Sprung einfädelnde, allgemeine Subausdruck-Beseitigung, Instruktionsterminplanung und so weiter einschließt. Die RTL Optimierungen sind von weniger Wichtigkeit mit der Hinzufügung globaler SSA-basierter Optimierungen auf GIMPLE Bäumen,

weil RTL Optimierungen viel mehr beschränktes Spielraum haben, und weniger Information auf höchster Ebene haben.

Einige dieser an diesem Niveau durchgeführten Optimierungen schließen tote Codebeseitigung, teilweise Überfülle-Beseitigung, globaler Wert numerierende, spärliche bedingte unveränderliche Fortpflanzung und Skalarersatz von Anhäufungen ein. Reihe-Abhängigkeit hat Optimierungen wie automatischer vectorization gestützt, und automatische parallelization werden auch durchgeführt. Profil-geführte Optimierung ist auch, wie demonstriert, hier möglich:

http://gcc.gnu.org/install/build.html#TOC4

Zurückende

Das Verhalten des Rücken-Endes von GCC wird durch Vorverarbeiter-Makros und Funktionen teilweise angegeben, die zu einer Zielarchitektur spezifisch sind, um zum Beispiel den endianness, die Wortgröße und das Benennen der Vereinbarung zu definieren. Der Vorderteil des Zurückendes verwendet diese, um zu helfen, RTL Generation so zu entscheiden, obwohl der RTL von GCC nominell mit dem Verarbeiter unabhängig ist, wird die anfängliche Folge von abstrakten Instruktionen bereits an das Ziel angepasst. Jederzeit müssen die wirklichen RTL Instruktionen, die die Programm-Darstellung bilden, die Maschinenbeschreibung der Zielarchitektur erfüllen.

Die Maschinenbeschreibungsdatei enthält RTL Muster, zusammen mit operand Einschränkungen und Codeschnipseln zur Produktion der Endzusammenbau. Die Einschränkungen zeigen an, dass ein besonderes RTL Muster nur (zum Beispiel) für bestimmte Hardware-Register gelten könnte, oder (zum Beispiel) unmittelbare operand Ausgleiche nur einer beschränkten Größe (z.B 12, 16, 24... Bit-Ausgleiche, usw.) erlauben. Während der RTL Generation werden die Einschränkungen für die gegebene Zielarchitektur überprüft. Um einen gegebenen Schnipsel von RTL auszugeben, muss es einen (oder mehr) der RTL Muster in der Maschinenbeschreibungsdatei vergleichen, und die Einschränkungen für dieses Muster befriedigen; sonst würde es unmöglich sein, den endgültigen RTL in den Maschinencode umzuwandeln.

Zum Ende der Kompilation wird gültiger RTL auf eine strenge Form reduziert, in der sich jede Instruktion auf echte Maschinenregister und ein Muster von der Maschinenbeschreibungsdatei des Ziels bezieht. Das Formen strengen RTL ist eine komplizierte Aufgabe; ein wichtiger Schritt ist Register-Zuteilung, wo echt, Hardware-Register werden gewählt, um die am Anfang zugeteilten Pseudoregister zu ersetzen. Dem wird von einer "Umladungs"-Phase gefolgt; irgendwelche Pseudoregister, die ein echtes Hardware-Register nicht zugeteilt wurden, werden zum Stapel und RTL 'verschüttet', um das durchzuführen, das Überlaufen wird erzeugt. Ebenfalls müssen Ausgleiche, die zu groß sind, um eine wirkliche Instruktion einzufügen, zerbrochen und durch RTL Folgen ersetzt werden, die den Ausgleich-Einschränkungen folgen werden.

In der Endphase wird der Maschinencode durch das Benennen eines kleinen Schnipsels des Codes gebaut, der mit jedem Muster vereinigt ist, um die echten Instruktionen vom Befehlssatz des Ziels, mit den Endregistern, Ausgleichen und während der umladen Phase gewählten Adressen zu erzeugen. Der Schnipsel der Zusammenbau-Generation kann gerade eine Schnur sein; in welchem Fall, ein einfacher Schnur-Ersatz der Register, Ausgleiche und/oder Adressen in die Schnur durchgeführt werden. Der Schnipsel der Zusammenbau-Generation kann auch ein kurzer Block des C-Codes sein, etwas zusätzliche Arbeit durchführend, aber schließlich eine Schnur zurückgebend, die den gültigen Maschinencode enthält.

Vereinbare IDEN

Die meisten einheitlichen Entwicklungsumgebungen, die für GNU/Linux geschrieben sind, und unterstützen einige für andere Betriebssysteme GCC. Diese schließen ein:

  • Anjuta
  • CodeLite
  • Dev-C ++
  • Eklipse
  • geany
  • KDevelop
  • NetBeans
  • Qt Schöpfer
  • Xcode

Das Beseitigen GCC Programme

Das primäre Werkzeug, das verwendet ist, um bei GCC-Code die Fehler zu beseitigen, ist das GNU-Testhilfeprogramm (gdb). Unter mehr spezialisierten Werkzeugen sind Valgrind, um Speicherfehler und Leckstellen und den Graphen profiler (gprof) zu finden, der bestimmen kann, wie viel Zeit verbracht wird, in denen Routinen, und wie oft sie genannt werden; das verlangt, dass Programme mit Kopierfräsoptionen kompiliert werden.

Siehe auch

  • MinGW (Windows-Hafen von GCC)
  • Liste von Bearbeitern

Weiterführende Literatur

Links


Gilbert Cesbron / Galen
Impressum & Datenschutz