Ero sivun ”GCC” versioiden välillä
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 ([[ | {{Kääntäjä | ||
| nimi = GCC (GNU Compiler Collection) | |||
| 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 | *-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: | *-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 | * [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.