Ero sivun ”GCC” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Pb (keskustelu | muokkaukset)
p erikoisohjelmat-luokkaan
 
(20 välissä olevaa versiota 12 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
GCC ([[GNU]] Compiler Collection) on [[GNU]]-projektin kääntäjäkokoelma, jolla voi kääntää ohjelmointikieliä [[C]], [[C plus plus|C++]] (CPP), Objective-C, Fortran, [[Java]] ja Ada. GCC sisältää myös näiden kielten kirjastot. GCC on saatavissa todella monille [http://gcc.gnu.org/install/specific.html alustoille], ja mm. Nokian älypuhelimista tunnetulle Symbian-käyttöjärjestelmälle valmistetut ohjelmat käännetään sillä.
{{Kääntäjä
 
| nimi          = GCC (GNU Compiler Collection)
GCC:n versio 4.0.0 julkaistiin huhtikuun 20. päivänä 2005.
| logo          =
| kuva          =
| kuvateksti    =
| kehittäjä      = GNU Project (Richard Stallman)
| ensijulkaisu  = 1987 (GNU C Compiler)
| vakaaversio    = 15.2
| vakaapvm      = 8. elokuuta 2025
| ohjelmoitu    = [[C]], [[C++]]
| tyyppi        = Kehitystyökalut, kääntäjät
| kohdekielet    = [[C]], [[C plus plus|C++]], [[Objective-C]], [[Fortran]], [[Ada]], [[Go]], [[D]], [[Modula-2]] ja [[COBOL]]
| kohdealustat  = Useat eri alustat ja arkkitehtuurit (esim. x86, ARM, PowerPC)
| lisenssi      = [[GPLv3+]], GCC Runtime Library Exception
| kotisivu      = [https://gcc.gnu.org gcc.gnu.org]
| lähdekoodi    = [https://github.com/gcc-mirror/gcc github.com/gcc-mirror/gcc]
}}
'''GCC''' (GNU Compiler Collection) on [[GNU]]-projektin kääntäjäkokoelma, jolla voi kääntää ohjelmointikieliä. GCC sisältää myös näiden kielten kirjastot. GCC on saatavissa todella monille [http://gcc.gnu.org/install/specific.html alustoille], ja mm. Nokian älypuhelimista tunnetulle Symbian-käyttöjärjestelmälle valmistetut ohjelmat käännettiin sillä.


==Kääntäminen==
==Kääntäminen==
Rivi 10: Rivi 25:


Lippuja joita voi lisätä käännöskomentoon:
Lippuja joita voi lisätä käännöskomentoon:
*-O: Asettaa optimointitason (0-3, 0 ei optimointia). Yleensä kannattaa käyttää muotoa <tt>-O2</tt> tai <tt>-O3</tt>
*-O: Asettaa optimointitason (0-3, 0 ei optimointia. Muut optimointiasetukset selityksineen löytyvät  [http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html GCC:n ohjekirjasta]). Yleensä kannattaa käyttää muotoa <tt>-O2</tt>
*-l: Kirjaston linkittäminen, esim. <tt>-lsdl</tt> linkittäisi projektiin mukaan libsdl.so-kirjaston asetuksissa määritellystä paikasta. [[pkg-config]] auttaa oikeiden kirjastovalitsinten löytämisessä.
*-l: Kirjaston linkittäminen, esim. <tt>-lsdl</tt> linkittäisi projektiin mukaan libsdl.so-kirjaston asetuksissa määritellystä paikasta. [[pkg-config]] auttaa oikeiden kirjastovalitsinten löytämisessä.
*-W: Asettaa varoitustason, eli sen, mitkä varoitukset näytetään. Esimerkiksi <tt>-Wall</tt> näyttäisi kaikki mahdolliset varoitukset kohdista, joita pidetään huonona tyylinä ja jotka on helppo välttää.
*-W: Asettaa varoitustason, eli sen, mitkä varoitukset näytetään. Esimerkiksi <tt>-Wall</tt> näyttäisi kaikki mahdolliset varoitukset kohdista, joita pidetään huonona tyylinä ja jotka on helppo välttää.
*-I: Lisää otsikkotiedostojen poluksi määritellyn. Esimerkiksi jos koodissa on #include <foo.h>, ja foo.h sijaitsee vaikka hakemistossa ~/headerit, käytetään lippua <tt>-I~/headerit</tt>
*-I: Lisää otsikkotiedostojen poluksi määritellyn. Esimerkiksi jos koodissa on #include <foo.h>, ja foo.h sijaitsee vaikka hakemistossa ~/headerit, käytetään lippua <tt>-I~/headerit</tt>
*-g: Lisää binääriin GNU-tyyliset debug-symbolit, olennainen esim [[Gdb]]:n ja [[Valgrind]]in kanssa.
*-g: Lisää binääriin GNU-tyyliset debug-symbolit, olennainen esim [[Gdb]]:n ja [[Valgrind]]in kanssa.
*-pedantic: antaa standardin vaatiman diagnostiikan vähäpätöisistäkin syntaksivirheistä.
*-pedantic: Antaa standardin vaatiman diagnostiikan vähäpätöisistäkin syntaksivirheistä.
*-o: Valitsee tiedoston joka tuotetaan.


==Katso myös==
==Katso myös==
*[[Distcc]]
* [[Distcc]] on avoin ja nopea hajautettu C/C++-kääntäjä.
*[[Make]]
* [[Make]] on työkalu, joka ohjaa lähdekooditiedostojen kääntämistä esimerkiksi ajettaviksi tiedostoiksi
* [[Cscope]] on interaktiivinen kielioppitietoinen ohjelma C-lähdekoodin tutkimiseen.


==Aiheesta muualla==
==Aiheesta muualla==
* [http://gcc.gnu.org/ GCC:n kotisivu]
* [http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html Täysi lista GCC:n optimointi-lipuista selityksineen englanniksi]
* [https://lwn.net/Articles/798913/ LWN.net: Comparing GCC and Clang security features]


[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
[[Luokka:Komentorivin erikoisohjelmat]]
[[Luokka:Komentorivin erikoisohjelmat]]
[[pl:GNU Compiler Collection]]

Nykyinen versio 15. marraskuuta 2025 kello 01.00

GCC (GNU Compiler Collection)
Kehittäjä(t) GNU Project (Richard Stallman)
Ensijulkaisu 1987 (GNU C Compiler)
Vakaa versio 15.2  / 8. elokuuta 2025
Ohjelmoitu C, C++
Tyyppi Kehitystyökalut, kääntäjät
Kohdekielet C, C++, Objective-C, Fortran, Ada, Go, D, Modula-2 ja COBOL
Kohdealustat Useat eri alustat ja arkkitehtuurit (esim. x86, ARM, PowerPC)
Lisenssi GPLv3+, GCC Runtime Library Exception
Kotisivu gcc.gnu.org
Lähdekoodi github.com/gcc-mirror/gcc

GCC (GNU Compiler Collection) on GNU-projektin kääntäjäkokoelma, jolla voi kääntää ohjelmointikieliä. GCC sisältää myös näiden kielten kirjastot. GCC on saatavissa todella monille alustoille, ja mm. Nokian älypuhelimista tunnetulle Symbian-käyttöjärjestelmälle valmistetut ohjelmat käännettiin sillä.

Kääntäminen

[muokkaa]

C-ohjelmat käännetään komennolla:

gcc tiedosto1.c tiedosto2.c -o ohjelma

Vastaavasti C++-ohjelmissa korvataan gcc komennolla g++ (joka itse asiassa ajaa gcc-kääntäjän linkittäen mukaan C++:n standardikirjastot).

Lippuja joita voi lisätä käännöskomentoon:

  • -O: Asettaa optimointitason (0-3, 0 ei optimointia. Muut optimointiasetukset selityksineen löytyvät GCC:n ohjekirjasta). Yleensä kannattaa käyttää muotoa -O2
  • -l: Kirjaston linkittäminen, esim. -lsdl linkittäisi projektiin mukaan libsdl.so-kirjaston asetuksissa määritellystä paikasta. pkg-config auttaa oikeiden kirjastovalitsinten löytämisessä.
  • -W: Asettaa varoitustason, eli sen, mitkä varoitukset näytetään. Esimerkiksi -Wall näyttäisi kaikki mahdolliset varoitukset kohdista, joita pidetään huonona tyylinä ja jotka on helppo välttää.
  • -I: Lisää otsikkotiedostojen poluksi määritellyn. Esimerkiksi jos koodissa on #include <foo.h>, ja foo.h sijaitsee vaikka hakemistossa ~/headerit, käytetään lippua -I~/headerit
  • -g: Lisää binääriin GNU-tyyliset debug-symbolit, olennainen esim Gdb:n ja Valgrindin kanssa.
  • -pedantic: Antaa standardin vaatiman diagnostiikan vähäpätöisistäkin syntaksivirheistä.
  • -o: Valitsee tiedoston joka tuotetaan.

Katso myös

[muokkaa]
  • Distcc on avoin ja nopea hajautettu C/C++-kääntäjä.
  • Make on työkalu, joka ohjaa lähdekooditiedostojen kääntämistä esimerkiksi ajettaviksi tiedostoiksi
  • Cscope on interaktiivinen kielioppitietoinen ohjelma C-lähdekoodin tutkimiseen.

Aiheesta muualla

[muokkaa]