Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. GNU Compiler Collection — Wikipédia
GNU Compiler Collection — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis GNU compiler collection)

Page d’aide sur l’homonymie

Pour les articles homonymes, voir GCC.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne s'appuie pas, ou pas assez, sur des sources secondaires ou tertiaires (décembre 2023).

L'article peut contenir des analyses et interprétations inexactes ou inédites de sources primaires. Pour améliorer la vérifiabilité de l'article ainsi que son intérêt encyclopédique, il est nécessaire, quand des sources primaires sont citées, de les associer à des analyses faites par des sources secondaires.
GNU Compiler Collection
Description de l'image GNU Compiler Collection logo.svg.
Description de l'image GCC 11.1.0 compiling Chicken screenshot.png.
Informations
Développé par Projet GNUVoir et modifier les données sur Wikidata
Première version 23 mai 1987[1]Voir et modifier les données sur Wikidata
Dernière version 14.3 (23 mai 2025)[2]
13.4 (5 juin 2025)[3]
15.2 (8 août 2025)[4]Voir et modifier les données sur Wikidata
Dépôt gcc.gnu.org/git/gcc.gitVoir et modifier les données sur Wikidata
Écrit en C++ et CVoir et modifier les données sur Wikidata
Supporte les langages C, C++, Objective-C, Fortran, Ada, Go et DVoir et modifier les données sur Wikidata
Système d'exploitation Le système d'exploitation GNU-Linux et BSDVoir et modifier les données sur Wikidata
Environnement Multiplateforme (d)Voir et modifier les données sur Wikidata
Type Compilateur optimisant (en)
Paquet GNUVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 3Voir et modifier les données sur Wikidata
Site web gcc.gnu.orgVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

GNU Compiler Collection, abrégé en GCC, est un ensemble de compilateurs créés par le projet GNU. GCC est un logiciel libre capable de compiler divers langages de programmation, dont C, C++, Objective-C, Java, Ada, Fortran et Go.

GCC est utilisé pour le développement de la plupart des logiciels libres. Le noyau Linux dépend notamment étroitement des fonctionnalités de GCC.

Présentation

[modifier | modifier le code]

GCC a été conçu pour remplacer le compilateur C fourni en standard sur le système d'exploitation Unix, qui s'appelle CC. GCC signifiait à l'origine GNU C Compiler, soit le « compilateur C de GNU ». Comme GCC est très extensible, la prise en charge de nombreux autres langages a été ajoutée et le nom officiel a été changé en GNU Compiler Collection.

En pratique, l'abréviation GCC est utilisée pour nommer trois entités légèrement différentes :

  1. la collection complète de compilateurs (le « projet GCC ») ;
  2. la partie commune à tous les compilateurs (« GCC ») ;
  3. le compilateur C lui-même (le frontend « gcc », écrit en minuscule).

Pour faire référence précisément aux compilateurs de chaque langage, on parle de :

  • gcc pour C ;
  • G++ pour C++ ;
  • GobjC pour Objective-C ;
  • GobjC++ pour Objective C++ ;
  • GCJ pour Java ;
  • GNAT pour Ada ;
  • GFortran[5] pour Fortran ;
  • gccgo pour Go ;
  • gdc pour D[6].

Il existe de nombreux autres compilateurs basés sur GCC qui ne font pas partie de la distribution standard du projet GCC.

Extensibilité par des greffons

[modifier | modifier le code]

Depuis la version 4.5 (et surtout 4.6), les compilateurs GCC sont extensibles par des greffons (« plugins »). Ceux-ci doivent être du logiciel libre et peuvent ajouter des passes d'optimisations, des pragmas, builtins ou attributs (mais ne peuvent pas étendre la syntaxe acceptée par GCC). Il existe quelques greffons pour GCC : Mozilla avait développé Tree Hydra[7] (abandonné). gcc python plugin[8] permet d'étendre GCC avec des scripts Python, notamment pour vérifier du code C pour Python. MELT[9] est un langage spécifique, inspiré de Lisp pour étendre GCC.

Débogage

[modifier | modifier le code]
Article détaillé : GNU Debugger.

GCC dispose également d'un outil de débogage, GNU Debugger (gdb). Bien que ne faisant pas partie de GCC, Valgrind est cependant préféré pour des tests plus en profondeur, notamment pour rechercher les fuites de mémoire.

Portabilité

[modifier | modifier le code]

GCC a été porté sur un nombre considérable de systèmes d'exploitation (pratiquement toutes les variantes d'Unix, VMS, Windows et MS-DOS via DJGPP) et de microprocesseurs (AMD64, ARM, AVR, DEC Alpha, M68k, MIPS, PowerPC, SPARC, x86, Hitachi H8).

Limitations

[modifier | modifier le code]

GCC, pour le langage C, ne prend pas en charge les identificateurs Unicode.

Histoire

[modifier | modifier le code]

Richard Stallman commence ses développements avec le langage de programmation Pastel, un « dialecte » non portable de Pascal. Une première version est ainsi utilisable dès juin 1984[10]. Ce langage s'inspire en partie du compilateur Pastel, mais aussi du compilateur portable de l'université de l'Arizona[11].

Il écrit un nouveau compilateur C ANSI à partir du printemps 1986[11], puis, avec l'aide de Len Tower et sous l'égide de la Free Software Foundation, il distribue une première version bêta le 22 mars 1987[12], et la première version stable deux mois plus tard[13]. À la fin des années 1980, GCC supporte déjà près d'une douzaine d'architectures ; Michael Tiemann apparaît alors comme le plus actif avec six ports réalisés à lui seul[14]. Il est même crédité du support natif du langage C++ dès la fin 1987, faisant du compilateur GNU le premier à supporter ce langage. Michael Tiemann délaisse progressivement le projet au début des années 1990 par manque de temps dû à ses activités au sein de la société Cygnus Solutions.

En 1992, la version 2.0 apporte en plus des nombreuses optimisations, un support stable du langage C++. Le projet semble alors entrer dans une nouvelle ère communément appelée « les années Cygnus ». Cette période débute par un processus de transition de la version 1.42 vers la nouvelle mouture.

En 1997, un groupe de développeurs trouve le modèle de développement lent et peu propice aux améliorations, ils décident alors de faire un fork du projet et le nomment EGCS (pour « Experimental/Enhanced GNU Compiler System »)[15]. À la suite des nombreuses améliorations réalisées, EGCS et GCC sont réunis en avril 1999, la première version publiée est la 2.95.

GCC suit de près l'évolution de la normalisation des langages, et parfois même la précède ; ainsi certaines des fonctionnalités de la norme C99 étaient déjà présentes avant la publication officielle.

GCC est aujourd'hui le compilateur le plus utilisé dans la communauté des logiciels libres et est le compilateur de nombre de systèmes d'exploitation, comme GNU/Linux, NetBSD, OpenBSD, NeXTSTEP ou encore BeOS/Haiku. A noter que FreeBSD utilise exclusivement Clang/LLVM depuis la version 13.0 et macOS depuis la version 5.0 de Xcode pour des problèmes de licence.

Versions

[modifier | modifier le code]

Les versions sont fixées par le GCC Steering Committee. Voici les dates de sortie des dernières versions principales[13] :

Version Date de sortie
3.0 18 juin 2001
3.1 15 mai 2002
3.2 14 août 2002
3.3 13 mai 2003
3.4 18 avril 2004
3.4.6 6 mars 2006
4.0 20 avril 2005[16]
4.0.4 31 janvier 2007
4.1 28 février 2006[17]
4.1.2 13 février 2007
4.2 13 mai 2007[18]
4.2.4 19 mai 2008
4.3 5 mars 2008[19]
4.3.5 22 mai 2010
4.4 21 avril 2009[20]
4.4.5 1er octobre 2010
4.5 14 avril 2010[21]
4.5.1 31 juillet 2010
4.5.2 16 décembre 2010
4.6 25 mars 2011[22]
4.7 22 mars 2012[23]
4.8 22 mars 2013
4.9 22 avril 2014
5.1 22 avril 2015
5.2 16 juillet 2015
5.3 4 décembre 2015
5.4 3 juin 2016
6.2 22 août 2016
6.3 21 décembre 2016
7.1 2 mai 2017 [24]
7.2 14 août 2017[25]
7.3 25 janvier 2018[26]
8.1 2 mai 2018
8.2 14 juillet 2018
8.3 22 février 2019[27]
9.1 25 avril 2019[27]
9.2 12 août 2019[13]
9.3 12 mars 2020[13]
10.1 7 mai 2020[13]
10.5 7 juillet 2023[13]
11.2 28 juillet 2021
11.4 29 mai 2023[13]
13.1 26 avril 2023[13]
13.2 27 juillet 2023[13]
14.1 7 mai 2024[28]
15.1 25 avril 2025[29]

Syntaxe

[modifier | modifier le code]
Utilisation de GCC 4.7.2 en ligne de commande sous Ubuntu.

La syntaxe de base utilisée par les compilateurs de GCC est :

 gcc fichierSource.c -o binaire

Pour utiliser des bibliothèques, la syntaxe est la suivante :

 gcc fichierSource.c -o binaire -l''bibliothèque''

De nombreuses options (passées en paramètre) permettent d'agir sur la compilation. GCC est souvent utilisé dans les makefile par le programme make.

Des options particulièrement utiles sont -O1 ou -O2 pour demander au compilateur d'optimiser, -Wall pour lui demander presque tous les messages d'avertissements, -g pour la génération d'information de déboguage, -c pour la génération d'un fichier objet (sans édition de liens).

Compilateurs inclus

[modifier | modifier le code]

GFortran

[modifier | modifier le code]

À la demande de très nombreux utilisateurs scientifiques, à partir de sa version 4, GCC compile le Fortran[30],[31]. Depuis la version 5, via OpenACC[32], la compatibilité avec le langage Fortran a été améliorée et la version 6 a été considérablement améliorée[33]. En juillet 2020, GFortran implémentait presque intégralement la norme Fortran 2008[34] et environ 20 % de la norme Fortran 2018. Le développement du compilateur par des utilisateurs volontaires continue[35] et chaque nouvelle version de GCC intègre un meilleur support des dernières normes du langage et des corrections de bogues.

GFortran ne gère pas de façon native la programmation parallèle avec les co-tableaux (coarrays) mais nécessite l'installation de la bibliothèque OpenCoarrays[36].

Notes et références

[modifier | modifier le code]
  1. ↑ « https://www.gnu.org/software/gcc/releases.html »
  2. ↑ (en) Richard Biener (d), « GCC 14.3 Released », 23 mai 2025 (consulté le 5 juin 2025)
  3. ↑ (en) Jakub Jelinek (d), « GCC 13.4 Released », 5 juin 2025 (consulté le 5 juin 2025)
  4. ↑ (en) Richard Biener (d), « GCC 15.2 Released », 8 août 2025 (consulté le 8 août 2025)
  5. ↑ (en) « gfortran — the GNU Fortran compiler, part of GCC », sur gcc.gnu.org, 8 mars 2021.
  6. ↑ (en) « GCC 9 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) », sur gcc.gnu.org, 3 mai 2019.
  7. ↑ Tree Hydra.
  8. ↑ gcc python plugin.
  9. ↑ MELT.
  10. ↑ « Personal Note from Richard Stallman - Lisp Machine Manual », common-lisp.net, juin 1984.
  11. ↑ a et b « Conférence de RMS au KTH (Suède) », gnu.org, 30 octobre 1986.
  12. ↑ (en) Richard Stallman, GNU C compiler beta test release, mod.compilers, 22 mars 1987 (lire en ligne).
  13. ↑ a b c d e f g h et i (en) « GCC Releases », sur gnu.org, 22 mars 2012 (consulté le 22 mars 2012)
  14. ↑ (en) « A Brief History of GCC », sur Wiki GCC, 10 janvier 2008 (consulté le 22 mars 2012)
  15. ↑ (en) D.V. Henkel-Wallace, A new project to merge the existing GCC forks, egcs, 15 août 1997 (lire en ligne).
  16. ↑ Patrick Guignot, « Les nouveautés de GCC 4.0 », sur Linuxfr, 22 avril 2005 (consulté le 24 mars 2012).
  17. ↑ Patrick Guignot, « Les nouveautés de GCC 4.1 », sur Linuxfr, 1er mars 2006 (consulté le 24 mars 2012).
  18. ↑ Patrick Guignot, « Sortie de GCC 4.2 », sur Linuxfr, 17 mai 2007 (consulté le 24 mars 2012).
  19. ↑ Patrick Guignot, « Sortie de GCC 4.3 », sur Linuxfr, 10 mars 2008 (consulté le 24 mars 2012).
  20. ↑ Patrick Guignot, « Sortie de la version 4.4 du compilateur GCC », sur Linuxfr, 21 avril 2009 (consulté le 24 mars 2012).
  21. ↑ Patrick Guignot, « Sortie de GCC 4.5 », sur Linuxfr, 15 avril 2010 (consulté le 24 mars 2012).
  22. ↑ Patrick Guignot, « La version 4.6 du compilateur GCC est disponible », sur Linuxfr, 26 mars 2011 (consulté le 24 mars 2012).
  23. ↑ Patrick Guignot, « Sortie de la version 4.7 du compilateur GCC », sur Linuxfr, 22 mars 2012 (consulté le 24 mars 2012).
  24. ↑ (en) « GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) », sur gcc.gnu.org (consulté le 7 mai 2017)
  25. ↑ (en) « GCC 7 Release Series - GNU Project - Free Software Foundation (FSF) », sur gcc.gnu.org (consulté le 4 novembre 2017)
  26. ↑ (en) « GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) », sur gcc.gnu.org (consulté le 25 janvier 2017)
  27. ↑ a et b Frederic Mazue, « Sortie de GCC 9.1 avec support de C++17 et du langage D », sur programmez.com (consulté le 6 mai 2019)
  28. ↑ (en) « GCC 14 Release Series », sur gcc.gnu.org, 7 mai 2024
  29. ↑ (en) « GCC 15 Release Series », sur gcc.gnu.org, 4 juin 2025
  30. ↑ (en) GCC 4 Release Series Changes, New Features, and Fixes
  31. ↑ (en) Welcome to the home of GNU Fortran
  32. ↑ (en) GCC 5 Release Series Changes, New Features, and Fixes
  33. ↑ (en) GCC 6 Release Series Changes, New Features, and Fixes
  34. ↑ (en) Compiler Support for the Fortran 2008 Standard.
  35. ↑ (en) « Letter from GCC/gfortran contributor with a brief history », sur Fortran Discourse, 12 février 2023 (consulté le 24 février 2023)
  36. ↑ (en) « OpenCoarrays », sur OpenCoarrays (consulté le 1er février 2022)

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • GNU Assembler
  • Pastel
  • GNU Pascal
  • Clang

Liens externes

[modifier | modifier le code]
  • (en) Site officielVoir et modifier les données sur Wikidata
  • (en) GCC sur le répertoire du logiciel libre
v · m
Projet GNU
Histoire
  • Manifeste GNU
  • Free Software Foundation (FSF)
  • Histoire du logiciel libre
Licences
  • GNU General Public License (GPL)
  • GNU Lesser General Public License (LGPL)
  • GNU Affero General Public License (AGPL)
  • GNU Free Documentation License (GFDL)
Logiciels
  • Système d'exploitation GNU
  • Bash
  • GCC
  • GDB
  • Emacs
  • Glibc
  • Guile
  • Guix
  • Coreutils
  • Savannah
  • GNUnet
  • Autotools
  • Liste des paquets GNU
Personnalités
  • Ludovic Courtès (auteur de GNU Guix)
  • Werner Koch
  • Christian Grothoff (auteur de GNUnet)
  • Simon Josefsson
  • Matt Lee
  • Stefan Monnier
  • Alexandre Oliva
  • Thomas Schwinge
  • Richard Stallman
  • John Gilmore
  • Mark H. Weaver
  • Andy Wingo
v · m
Exécution informatique
Concepts généraux
  • Programme informatique
  • Langage intermédiaire
  • Chaîne de compilation
  • Fichier exécutable
  • Interprétation
  • Environnement d'exécution
Types de code
  • Code source
  • Code objet
  • Bytecode
  • Code machine
  • Microcode
  • Instruction-machine
Compilation
  • Compilation à la volée
  • Compilation anticipée
  • Préprocesseur
  • Compilateur source à source
anticipée
  • GNU Compiler Collection (C et C++)
  • LLVM
  • LDL
  • GHC (Haskell)
  • Javac (Java)
  • Phalanger (PHP)
  • Free Pascal (Pascal)
à la volée
  • V8, SpiderMonkey (Javascript)
  • PyPy (Python)
Machines virtuelles
  • ART
  • CIL (C#, F#, Visual Basic .NET)
  • Machine virtuelle Java
    • HotSpot
    • GraalVM
  • HHVM (PHP)
  • CPython (Python)
  • icône décorative Portail des logiciels libres
  • icône décorative Portail de Linux
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=GNU_Compiler_Collection&oldid=230013163 ».
Catégories :
  • Logiciel écrit en C++
  • Logiciel écrit en C
  • Logiciel du projet GNU
  • Compilateur
  • Compilateur C
  • Compilateur C++
  • Logiciel libre sous licence GPL
  • Logiciel pour Unix
Catégories cachées :
  • Article manquant de références depuis décembre 2023
  • Article manquant de références/Liste complète
  • Page utilisant P178
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P3985
  • Page utilisant P306
  • Page utilisant P400
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:GNU/Linux/Articles liés
  • Portail:Programmation informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id