Ero sivun ”GCC” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p (+interwiki) |
pEi muokkausyhteenvetoa |
||
(5 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
GCC ( | '''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äännettiin sillä. | ||
GCC:n versio | GCC:n versio 10 julkaistiin heinäkuun 23. päivänä 2020. | ||
==Kääntäminen== | ==Kääntäminen== | ||
Rivi 15: | Rivi 15: | ||
*-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: | *-pedantic: Antaa standardin vaatiman diagnostiikan vähäpätöisistäkin syntaksivirheistä. | ||
*-o: Valitsee tiedoston joka tuotetaan. | |||
==Katso myös== | ==Katso myös== | ||
Rivi 25: | Rivi 26: | ||
* [http://gcc.gnu.org/ GCC:n kotisivu] | * [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] | * [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]] |
Versio 30. joulukuuta 2020 kello 17.00
GCC (GNU Compiler Collection) on GNU-projektin kääntäjäkokoelma, jolla voi kääntää ohjelmointikieliä C, C++ (CPP), Objective-C, Fortran, Java ja Ada. 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ä.
GCC:n versio 10 julkaistiin heinäkuun 23. päivänä 2020.
Kääntäminen
C ja C++
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.