Ero sivun ”GCC” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (gcc-artikkeli on sisällöltään aikamoinen blast from the past, puhutaan Nokian Symbian-luureista :))
Rivi 25: Rivi 25:
* [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 14. heinäkuuta 2020 kello 21.51

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äännetään sillä.

GCC:n versio 8.3 julkaistiin helmikuun 22. päivänä 2019.

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ä.

Katso myös

Aiheesta muualla