GCC

De GNU C Compiler

Als we het hebben over GCC, dan kunnen we het hebben over 2 dingen.

- De GNU C Compiler

- De GNU Compiler Collection

De GNU Compiler Collection bevat naast de GNU C Compiler ook nog de volgende compilers:

C++, Objective-C, Fortran, Ada, Go en D

In dit artikel gaan we het hebben over de GNU C Compiler.

C en C++ Worden nog veel gebruikt op Linux, zo is de kernel geschreven in C en vele andere toepassingen in C++

C is ontwikkeld door Dennis Ritchie en Brian Kernighan (1972) die toen werkte voor AT&T Bell Labs.

Omdat compilers een zeer specifieke doekgroep hebben, ga ik deze tool maar vluchtig beschrijven. Als je wil leren programmeren in één of meerdere van deze talen, dan zal het gebruik van een compiler daar in meer detail besproken worden.

Om de werking van de compiler te kunnen tonen hebben we natuurlijk wat broncode nodig, hiervoor gaan we de standaard "Hello World" code gebruiken.

Maak een bestand met de naam hello.c met de volgende inhoud.

#include <stdio.h>
int main()
{
   // printf() toont de tekst tussen de aanhalingstekens.
   printf("Hallo, Commandoregel!\n");
   return 0;
}

De simpelste methode om dit te compileren is gcc hello.c

Als er geen fouten in de broncode zitten dan geeft dit een uitvoerbaar bestand met de naam a.out.

als we a.out uitvoeren zal het programma de regel "Hallo Commandoregel!" weergeven.

Figuur 1. $ ./a.out
$ ./a.out

Maar omdat a.out nogal cryptisch is geven we met de -o parameter aan welke naam we het programma willen geven. Ook wordt er vaak de -Wall parameter meegegeven (dit betekend dat alle waarschuwingen worden weergegeven tijdens het compileren). Dit kunnen fouten zijn in de code waardoor het programma niet wil compileren of waarschuwing die heen invloed hebben op het compileren van de software, maar welke aangeven dat er mogelijk fouten in de broncode zitten.

Figuur 2. vi hello.c
vi hello.c

Hierboven kunnen we zien dat ik een integer met waarde 42 heb toegevoegd, maar deze integer (met naam a) wordt nergens gebruikt. Hoewel het programma zal compileren geeft gcc een melding dat deze niet gebruikt wordt.

Figuur 2. $ gcc -Wall hello.c -oHello
$ gcc -Wall hello.c -oHello

Het programma wordt echter wel gecompileerd en zal (in dit geval) ook correct werken.

Figuur 2. $ ./Hello
$ ./Hello

Omdat compilers zeer complex zijn en een lange lijst van opties hebben is het onmogelijk om deze hier allemaal te bespreken. Wil je meer weten over programmeren of over een bepaalde compiler plaats dan een bericht op ons forum en we zullen proberen om jouw vraag daar te beantwoorden.

Meer informatie kun je altijd terugvinden in de manpages of de infopages