GNU Compiler Collection
Utviklet av | GNU-prosjekt |
---|---|
Første versjon | 23. mai 1987 |
Siste versjon | 11.1 (27. april 2021) |
Innskudd | gcc.gnu.org/git |
Skrevet i | C ++ |
Grensesnitt | Kommandolinjegrensesnitt |
Støttespråk | C , C ++ , Objective-C , Fortran , Ada , Go og D. |
Operativsystem | Linux , Hurd og Microsoft Windows |
Miljø | Multiplatform |
Type | Kompilator |
Tillatelse | GNU General Public License versjon 3 |
Nettsted | gcc.gnu.org |
GNU Compiler Collection , forkortet GCC , er en samling kompilatorer opprettet av GNU Project . GCC er gratis programvare som kan kompilere forskjellige programmeringsspråk , inkludert C , C ++ , Objective-C , Java , Ada , Fortran og Go .
GCC brukes til utvikling av mest gratis programvare. Den Linux-kjernen er spesielt avhengig av GCC funksjonalitet.
GCC ble designet for å erstatte C- kompilatoren som leveres som standard på Unix- operativsystemet , som kalles CC. GCC sto opprinnelig for GNU C Compiler , eller " GNU C Compiler ". Siden GCC er veldig utvidbart, har støtte for mange andre språk blitt lagt til, og det offisielle navnet er endret til GNU Compiler Collection .
I praksis brukes forkortelsen GCC for å nevne tre litt forskjellige enheter:
For å referere spesifikt til samlerne for hvert språk, snakker vi om:
Det er mange andre GCC-baserte kompilatorer som ikke er en del av standarddistribusjonen av GCC-prosjektet.
Siden versjon 4.5 (4.6 og nyere) er GCC-kompilatorene utvidbare gjennom plugins (" plugins "). Dette må være gratis programvare og kan legge til optimaliseringskort, pragmas, innebygde eller attributter (men kan ikke utvide syntaksen som godtas av GCC). Det er noen få plugins for GCC: Mozilla utviklet Tree Hydra (avviklet). gcc python plugin gjør det mulig å utvide GCC med Python-skript, spesielt for å verifisere C-kode for Python. MELT er et spesifikt språk, inspirert av Lisp for å utvide GCC.
GCC har også et feilsøkingsverktøy, GNU Debugger (gdb). Selv om det ikke er en del av GCC, foretrekkes Valgrind for mer grundige tester, spesielt for å finne minnelekkasjer .
GCC har blitt portet til et betydelig antall operativsystemer (praktisk talt alle varianter av Unix , VMS , Windows og MS-DOS via DJGPP ) og mikroprosessorer ( AMD64 , ARM , DEC Alpha , M68k , MIPS , PowerPC , SPARC , x86 , Hitachi H8 ).
GCC, for C-språket, støtter ikke Unicode- identifikatorer .
Richard Stallman begynner sin utvikling med programmeringsspråket Pastel , en ikke- bærbar "dialekt" av Pascal . En første versjon kan dermed brukes fraJuni 1984. Dette språket er delvis inspirert av Pastel- kompilatoren , men også av den bærbare kompilatoren fra University of Arizona .
Han skrev en ny ANSI C- kompilator som startet våren 1986, deretter, med hjelp av Len Tower og under ledelse av Free Software Foundation , distribuerte han en første betaversjon på22. mars 1987, og den første stabile versjonen to måneder senere. På slutten av 1980-tallet støttet GCC allerede nesten et dusin arkitekturer; Michael Tiemann ser da ut til å være den mest aktive med seks porter utført alene. Det er til og med kreditert med innfødt støtte for C ++ - språket fra slutten av 1987, noe som gjør GNU-kompilatoren den første som støtter dette språket. Michael Tiemann forlot gradvis prosjektet på begynnelsen av 1990-tallet på grunn av tidsmangel på grunn av sine aktiviteter i selskapet Cygnus Solutions .
I 1992 ga versjon 2.0 i tillegg til en rekke optimaliseringer, stabil støtte for C ++ språk. Prosjektet ser ut til å gå inn i en ny tid som ofte kalles " Cygnus-årene ". Denne perioden begynner med en overgangsprosess fra versjon 1.42 til den nye versjonen.
I 1997 , en gruppe utviklere fant utviklingsmodellen treg og ikke veldig bidrar til forbedringer, så de bestemte seg for å punge prosjektet og kalte det EGCS (for " Experimental / Enhanced GNU Compiler System "). Etter de mange forbedringene som ble gjort, ble EGCS og GCC samlet i april 1999 , den første versjonen som ble publisert, er 2.95.
GCC følger nøye med på utviklingen av språkstandardisering, og noen ganger til og med foran den; dermed var noen av funksjonene til C99- standarden allerede til stede før den offisielle publikasjonen.
GCC er i dag den mest brukte kompilatoren i gratis programvaresamfunn og er kompilatoren for mange operativsystemer, som GNU / Linux , BSD , Mac OS X , NeXTSTEP eller til og med BeOS / Haiku .
Versjonene er satt av GCC-styringskomiteen . Versjon 4 samler Fortran 95 på forespørsel fra et stort antall vitenskapelige brukere. Det er faktisk på dette språket de fleste nåværende kildebiblioteker og vitenskapelige underrutiner byttes ut ; Linux er veldig til stede i laboratorier. Siden versjon 5, via OpenACC , har kompatibiliteten med Fortran-språket blitt forbedret, og versjon 6 har blitt betydelig forbedret. I begynnelsen av 2021 implementerte GFortran 10.2 nesten fullt ut Fortran 2008-standarden og rundt 20% av Fortran 2018-standarden.
Her er utgivelsesdatoene for de siste store versjonene:
Versjon | Utgivelsesdato |
---|---|
3.0 | 18. juni 2001 |
3.1 | 15. mai 2002 |
3.2 | 14. august 2002 |
3.3 | 13. mai 2003 |
3.4 | 18. april 2004 |
3.4.6 | 6. mars 2006 |
4.0 | 20. april 2005 |
4.0.4 | 31. januar 2007 |
4.1 | 28. februar 2006 |
4.1.2 | 13. februar 2007 |
4.2 | 13. mai 2007 |
4.2.4 | 19. mai 2008 |
4.3 | 5. mars 2008 |
4.3.5 | 22. mai 2010 |
4.4 | 21. april 2009 |
4.4.5 | 1 st oktober 2 010 |
4.5 | 14. april 2010 |
4.5.1 | 31. juli 2010 |
4.5.2 | 16. desember 2010 |
4.6 | 25. mars 2011 |
4.7 | 22. mars 2012 |
4.8 | 22. mars 2013 |
4.9 | 22. april 2014 |
5.1 | 22. april 2015 |
5.2 | 16. juli 2015 |
5.3 | 4. desember 2015 |
5.4 | 3. juni 2016 |
6.2 | 22. august 2016 |
6.3 | 21. desember 2016 |
7.1 | 2. mai 2017 |
7.2 | 14. august 2017 |
7.3 | 25. januar 2018 |
8.1 | 2. mai 2018 |
8.2 | 14. juli 2018 |
8.3 | 22. februar 2019 |
9.1 | 25. april 2019 |
9.2 | 12. august 2019 |
9.3 | 12. mars 2020 |
10.1 | 7. mai 2020 |
Den grunnleggende syntaksen som brukes av GCC-kompilatorene er:
gcc fichierSource.c -o binaireFor å bruke biblioteker er syntaksen som følger:
gcc fichierSource.c -o binaire -l''bibliothèque''Mange alternativer (sendt som en parameter) lar deg handle på samlingen. GCC brukes ofte i makefiles av make- programmet .
Spesielt nyttige alternativer er -O1 eller -O2 for å fortelle kompilatoren å optimalisere, -Vegg til å be om nesten alle advarsler, -g for å generere feilsøkingsinformasjon, -c for å generere en objektfil (uten koblingsredigering).