Uitgebreide gids voor het installeren en gebruiken van GCC op Ubuntu

目次

1. Inleiding

Wat is GCC?

GCC (GNU Compiler Collection) is een open-source compiler die meerdere programmeertalen zoals C en C++ kan compileren. Het wordt veel gebruikt als de standaardcompiler in veel Linux-distributies.

Belangrijkste kenmerken van GCC:

  • Ondersteunt meerdere talen, waaronder C, C++, Fortran, Java en meer.
  • Open source en vrij te gebruiken door iedereen.
  • Maakt snelle en betrouwbare compilatie mogelijk.

Waarom GCC gebruiken op Ubuntu?

  1. Inbegrepen als standaardpakket De repositories van Ubuntu bevatten GCC standaard, waardoor installatie eenvoudig is.
  2. Ruime ondersteuning en documentatie Omdat er wereldwijd veel gebruikers zijn, is er een overvloed aan informatie beschikbaar voor probleemoplossing en aanpassing.
  3. Gratis te gebruiken Je kunt een krachtige ontwikkelomgeving op lage kosten bouwen.
  4. Eenvoudig aan te passen Je kunt meerdere GCC-versies beheren, waardoor je een omgeving kunt bouwen die geschikt is voor elk project.

Samenvatting

In dit artikel hebben we een overzicht van GCC geïntroduceerd en de voordelen van het gebruik ervan op Ubuntu. GCC is een krachtige compiler die meerdere talen ondersteunt en gratis te gebruiken is, en op Ubuntu is het vooral gemakkelijk te installeren.

2. Vereisten

Het systeem bijwerken en afhankelijkheden controleren

Werk eerst de pakketinformatie van Ubuntu bij naar de nieuwste staat. Dit helpt om fouten tijdens de installatie te voorkomen.

1. Het systeem bijwerken naar de nieuwste staat

sudo apt update
sudo apt upgrade
  • sudo apt update : Werkt de pakketlijst bij naar de nieuwste versie.
  • sudo apt upgrade : Upgrade de geïnstalleerde pakketten naar hun nieuwste versies.

Opmerkingen:

  • De update kan enkele minuten duren.
  • Als na de update een bericht “herstart vereist” verschijnt, herstart dan het systeem.

Ontwikkeltools controleren

Om GCC te installeren, zijn basale ontwikkeltools en pakketten vereist. Voer de volgende opdracht uit om de benodigde pakketten vooraf te installeren.

sudo apt install build-essential

Deze opdracht installeert essentiële ontwikkeltools, inclusief GCC.

Voorbeelden van geïnstalleerde pakketten:

  • gcc (C-compiler)
  • g++ (C++-compiler)
  • make (build-tool)

Installatiestatus controleren

Om te bevestigen welke pakketten zijn geïnstalleerd en hun versies te controleren, gebruik de volgende opdracht:

gcc --version

Voorbeeldoutput:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Als je deze output ziet, kun je bevestigen dat GCC correct is geïnstalleerd.

Samenvatting van vereisten

Tot dit punt heb je de vereisten voltooid die nodig zijn om GCC te installeren.

  • Het systeem bijgewerkt en geüpgraded naar de nieuwste staat.
  • De vereiste pakketten geïnstalleerd om de omgeving voor te bereiden.
  • De installatiestatus en versie van GCC geverifieerd.

3. Hoe GCC te installeren

Basisinstallatiestappen

Op Ubuntu kan GCC eenvoudig worden geïnstalleerd vanuit de officiële repository. Volg de onderstaande stappen om de installatie uit te voeren.

  1. Het build-essential-pakket installeren
    sudo apt install build-essential
    

Deze opdracht installeert GCC, G++ en het volledige set ontwikkeltools.

  1. Installatievoortgang bevestigen Tijdens de installatie, als “Doorgaan? (Y/n)” wordt weergegeven, typ dan “Y” en druk op Enter.

Hoe te verifiëren na installatie

Nadat de installatie is voltooid, verifieer de GCC-versie om te bevestigen dat alles correct is geïnstalleerd:

gcc --version

Voorbeeldoutput:

gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.

Als versie-informatie wordt weergegeven zoals hierboven, is GCC succesvol geïnstalleerd.

Extra tools of bibliotheken installeren

Soms is het installeren van alleen GCC niet voldoende, dus wil je mogelijk de volgende extra pakketten installeren:

  1. G++ installeren (C++-compiler)
    sudo apt install g++
    
  1. Debugging-tools installeren
    sudo apt install gdb
    
  1. Ontwikkelhandmatige pagina’s installeren
    sudo apt install manpages-dev
    

Dit zorgt ervoor dat je onmiddellijk kunt verwijzen naar GCC-gerelateerde hulp en handleidingen wanneer nodig.

Problemen oplossen bij mislukte installaties

  1. Pakket niet gevonden
    E: Unable to locate package build-essential
    

Oplossing: Werk de repository-informatie bij:

sudo apt update
sudo apt upgrade
  1. Machtigingfouten treden op
    Permission denied
    

Oplossing: Gebruik sudo aan het begin van commando’s om uit te voeren met beheerdersprivileges.

Samenvatting van installatiestappen

In deze sectie hebben we uitgelegd hoe je GCC installeert en de installatie verifieert, evenals hoe je extra pakketten installeert.

Belangrijkste inzichten:

  • Gebruik sudo apt install build-essential om snel te installeren.
  • Controleer de versie om de installatiestatus te verifiëren.
  • Voeg G++, gdb en andere tools toe indien nodig.

4. Basisgebruik van GCC

Een eenvoudig programma maken en compileren

  1. Een voorbeeldprogramma maken

Eerst, maak een eenvoudig “Hallo, Wereld!” programma:

nano hello.c

Wanneer de editor opent, voer de volgende code in:

#include <stdio.h>

int main() {
    printf("Hello, World!n");
    return 0;
}

Na invoeren, druk op Ctrl + X om op te slaan, druk dan op Y om te bevestigen en af te sluiten.

Het programma compileren

Vervolgens, compileer dit programma met GCC:

gcc hello.c -o hello

Uitleg van het commando:

  • gcc : Het compilercommando.
  • hello.c : Het broncodebestand om te compileren.
  • -o hello : Specificeert de uitvoerbestandsnaam als “hello.”

Het gecompileerde programma uitvoeren

Voer het gecompileerde programma uit met het volgende commando:

./hello

Verwachte uitvoer:

Hello, World!

Als dit wordt weergegeven, is het programma succesvol gecompileerd en uitgevoerd.

Fouten afhandelen

  1. Fouten door programmeerfouten

Voorbeeld foutmelding:

hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
    return 0;

Oplossing:
De foutmelding geeft de locatie aan (bijv. regel 3). Controleer je code en corrigeer de syntaxis-fouten.

  1. Compilatiefout

Voorbeeld fout:

gcc: command not found

Oplossing:
GCC is mogelijk niet geïnstalleerd. Herinstalleer met:

sudo apt install build-essential
  1. Runtime-fout

Voorbeeld fout:

bash: ./hello: Permission denied

Oplossing:
Als het bestand geen uitvoeringsmachtigingen heeft, gebruik:

chmod +x hello
./hello

Optimalisatie-opties

GCC stelt je in staat om optimalisatie-opties te gebruiken om de programma-prestaties te verbeteren.

Voorbeeld: Optimalisatieniveau specificeren

gcc -O2 hello.c -o hello
  • -O1 : Basisoptimalisaties.
  • -O2 : Geavanceerdere optimalisaties.
  • -O3 : Maximale optimalisatie (prioriterend uitvoersnelheid).

Dit helpt je om de uitvoersnelheid of codesize efficiënter te optimaliseren.

Samenvatting

In deze sectie hebben we het maken, compileren en uitvoeren van een basisprogramma met GCC behandeld.

Belangrijkste inzichten:

  • Je hebt geleerd hoe je voorbeeldcode maakt en compileert.
  • We hebben onderzocht hoe je fouten afhandelt wanneer ze optreden.
  • We hebben optimalisatie-opties geïntroduceerd om prestaties te verbeteren.

5. Meerdere versies beheren

Meerdere versies installeren

Op Ubuntu kun je verschillende versies van GCC tegelijkertijd installeren. Laten we meerdere versies installeren met de onderstaande stappen.

  1. Beschikbare versies controleren
    sudo apt search gcc-
    

Dit commando laat je de lijst van GCC-versies in de repository zien.

Voorbeeld uitvoer:

gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. Vereiste versies installeren

Bijvoorbeeld, installeer GCC 9 en GCC 10:

sudo apt install gcc-9 gcc-10

Zodra de installatie voltooid is, ga door met het configureren van versie-wisseling.

Hoe versies te wisselen

Ubuntu ondersteunt het update-alternatives commando om GCC-versies gemakkelijk te wisselen.

  1. Geïnstalleerde GCC-versies registreren met update-alternatives

Voer uit:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100

In deze configuratie is GCC 10 geregistreerd als de voorkeur standaard (prioriteit 100).

  1. Selecteer de versie om te gebruiken

Gebruik het volgende commando om handmatig de gewenste versie te kiezen:

sudo update-alternatives --config gcc

Voorbeeldoutput:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-10  100       auto mode
  1            /usr/bin/gcc-9   90        manual mode
  2            /usr/bin/gcc-10  100       manual mode

Press <enter> to keep the current choice[*], or type selection number:

Voer het gewenste nummer in en druk op Enter.

Een specifieke versie per project gebruiken

Als je een bepaalde versie voor elk project wilt gebruiken, kun je de symbolische koppelingen dienovereenkomstig aanpassen.

  1. Maak of werk de koppeling bij
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Dit commando stelt GCC 9 in als de standaardversie.

  1. Controleer de versie
    gcc --version
    

Bevestig dat de versie die je hebt geconfigureerd correct is toegepast.

Samenvatting

In deze sectie hebben we uitgelegd hoe je meerdere GCC-versies kunt installeren en update-alternatives kunt gebruiken om eenvoudig te schakelen.

Belangrijkste inzichten:

  • Installeer de versies die je nodig hebt en beheer ze met update-alternatives.
  • Je kunt ook symbolische koppelingen instellen om een specifieke versie per project te gebruiken.

6. Probleemoplossing

Fouten tijdens installatie en hoe ze aan te pakken

Foutvoorbeeld 1: Pakket niet gevonden

E: Unable to locate package build-essential

Oorzaak:
De pakketlijst is niet up-to-date, of de repositoryconfiguratie heeft problemen.

Oplossing:
Voer de volgende commando’s uit om de repository-informatie bij te werken:

sudo apt update
sudo apt upgrade
sudo apt install build-essential

Aanvullende remedie:

sudo add-apt-repository universe
sudo apt update

Dit kan ervoor zorgen dat het pakket wordt gevonden.

Foutvoorbeeld 2: Toegang geweigerd

Permission denied

Oorzaak:
Commando’s worden niet uitgevoerd met beheerdersprivileges.

Oplossing:
Voeg sudo toe aan alle installatiecommando’s.

sudo apt install build-essential

Fouten tijdens compilatie en hoe ze aan te pakken

Foutvoorbeeld 1: Compiler niet gevonden

gcc: command not found

Oorzaak:
GCC is niet geïnstalleerd of de PATH is niet correct ingesteld.

Oplossing:
Controleer of GCC is geïnstalleerd:

sudo apt install gcc

Als het is geïnstalleerd, controleer en pas de symbolische koppeling aan:

sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc

Foutvoorbeeld 2: Fout bij koppelen van bibliotheek

undefined reference to 'main'

Oorzaak:
De main-functie is niet gedefinieerd in je programma, of het koppelen is mislukt.

Oplossing:
Zorg ervoor dat de main-functie is opgenomen en compileer opnieuw met koppelopties, bijv.:

gcc -o output main.c -lm

Fouten tijdens runtime en hoe ze aan te pakken

Foutvoorbeeld 1: Geen uitvoeringsmachtiging

bash: ./program: Permission denied

Oorzaak:
Het uitvoerbare bestand mist uitvoeringsmachtiging.

Oplossing:
Verleen uitvoeringsmachtiging:

chmod +x program
./program

Foutvoorbeeld 2: Ontbrekende bibliotheken

error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory

Oorzaak:
Vereiste gedeelde bibliotheken zijn niet geïnstalleerd.

Oplossing:
Controleer de naam van de ontbrekende bibliotheek en installeer deze:

sudo apt install libXXX-dev

Fouten tijdens versie wisselen en oplossingen

Foutvoorbeeld: wissel niet toegepast

gcc --version

Als de gewijzigde versie niet wordt weergegeven, herzie dan je update-alternatives-instellingen.

Oplossing:

  1. Controleer de lijst met alternatieven:
    sudo update-alternatives --config gcc
    
  1. Selecteer het juiste nummer.
  2. Werk de symbolische koppeling bij.
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Samenvatting

In dit gedeelte hebben we veelvoorkomende fouten tijdens de GCC‑installatie en -gebruik uitgelegd, evenals hun oplossingsstrategieën.

Belangrijkste punten: Installatiefouten kunnen vaak worden verholpen door de repositories bij te werken of de repository‑instellingen aan te passen.
Compilatiefouten kunnen worden opgelost door de code en link‑opties te controleren.
Runtime‑fouten ontstaan vaak door permissie‑problemen of ontbrekende bibliotheken.
* Problemen met versie‑wisselingen kunnen worden aangepakt met symbolische links en aanpassingen via update-alternatives.

7. FAQ

Hoe kan ik de nieuwste versie van GCC installeren?

Vraag:
Ik wil de nieuwste versie van GCC installeren, maar de standaard repository biedt alleen oudere versies. Wat moet ik doen?

Antwoord:
Om de nieuwste versie van GCC te installeren, kun je een PPA‑repository toevoegen.

  1. Voeg de PPA‑repository toe:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    
  1. Werk de pakketlijst bij:
    sudo apt update
    
  1. Installeer de nieuwste versie:
    sudo apt install gcc-12
    
  1. Controleer de versie:
    gcc --version
    

Hoe verwijder ik GCC?

Vraag:
Ik wil GCC verwijderen. Hoe moet ik te werk gaan?

Antwoord:
Je kunt GCC verwijderen met de volgende commando’s:

sudo apt remove gcc
sudo apt autoremove

Als je ook gerelateerde tools wilt verwijderen, voeg dan toe:

sudo apt remove build-essential

Wat moet ik doen als alleen oudere versies selecteerbaar zijn?

Vraag:
Zelfs wanneer ik update-alternatives --config gcc gebruik, verschijnen alleen oudere versies. Hoe kan ik een nieuwere versie toevoegen?

Antwoord:
Voeg de nieuwere versie handmatig toe aan de alternatives‑instellingen.

  1. Installeer de versie die je nodig hebt:
    sudo apt install gcc-12
    
  1. Voeg deze handmatig toe aan de alternatives:
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
    
  1. Selecteer de versie:
    sudo update-alternatives --config gcc
    

Wat als er afhankelijkheidsfouten optreden?

Vraag:
Er verschijnen afhankelijkheidsfouten tijdens de GCC‑installatie. Hoe kan ik die oplossen?

Antwoord:
Afhankelijkheidsfouten kunnen ontstaan doordat het systeem niet up‑to‑date is. Voer uit:

sudo apt update
sudo apt upgrade

Als dat het probleem niet oplost, herstel dan automatisch gebroken afhankelijkheden:

sudo apt --fix-broken install

Hoe gebruik ik een specifieke GCC‑versie voor een bepaald project?

Vraag:
Ik wil per project verschillende GCC‑versies gebruiken. Hoe kan ik dat instellen?

Antwoord:
Maak een symbolische link in de projectmap die verwijst naar de gewenste GCC‑binary.

  1. Maak de lokale link:
    ln -s /usr/bin/gcc-9 ./gcc
    
  1. Gebruik deze lokaal in compile‑commando’s:
    ./gcc -o program program.c
    

Wat moet ik doen als “command not found” verschijnt?

Vraag:
Hoewel ik GCC heb geïnstalleerd, zie ik “gcc: command not found”. Wat moet ik doen?

Antwoord:
Controleer eerst de installatie:

dpkg -l | grep gcc

Als GCC niet geïnstalleerd is, installeer het opnieuw:

sudo apt install gcc

Als het nog steeds niet werkt, controleer dan de symbolische link:

ls -l /usr/bin/gcc

Is de link defect, herstel deze dan:

sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc

Samenvatting

In dit gedeelte hebben we veelgestelde vragen en hun concrete oplossingen voor GCC gepresenteerd.

Belangrijkste punten:

  • De nieuwste versie kan worden geïnstalleerd via PPA‑repositories.
  • Verwijderen en versiebeheer zijn eenvoudig te regelen met update-alternatives.
  • We hebben ook concrete commandoreeksen gegeven voor probleemoplossing.

8. Conclusie en volgende stappen

Overzicht van dit artikel

  1. GCC‑overzicht en rol
  • GCC is een krachtige compiler die meerdere talen ondersteunt, zoals C en C++.
  • Op Ubuntu kan GCC eenvoudig worden geïnstalleerd vanuit de officiële repository, waardoor het ideaal is voor het opzetten van ontwikkelomgevingen.
  1. Installatie‑ en voorbereidingsstappen
  • We hebben het systeem bijgewerkt en het pakket build-essential geïnstalleerd.
  • We hebben ook versies geverifieerd en afhankelijkheidsproblemen aangepakt.
  1. Basisgebruik
  • We hebben uitgelegd hoe je voorbeeldprogramma’s kunt maken, compileren en uitvoeren.
  • We hebben besproken hoe je reageert op fouten en optimalisatie-opties gebruikt.
  1. Meerdere versies beheren en schakelen
  • We hebben uitgelegd hoe je update-alternatives gebruikt om tussen GCC-versies per project te schakelen.
  1. Probleemoplossing en FAQ
  • We hebben mogelijke installatie- en gebruiksfouten behandeld en concrete oplossingen gegeven.

Aanvullende bronnen

Hier zijn bronnen om verder leren of toepassingen te ondersteunen:

  1. Officiële Ubuntu-documentatie
  1. Officiële GNU GCC-documentatie
  1. Linux console-handleidingen
  • Linux Console publiceert probleemoplossingsinformatie over Linux-onderwerpen.
  1. Leersites en forums

Volgende stappen

  1. GCC toepassen in echte projecten
  • Gebruik GCC in echte projecten en voer geavanceerdere ontwikkeling uit.
  1. Bibliotheken en extensies gebruiken
  • Installeer aanvullende bibliotheken indien nodig om de functies van je project uit te breiden.
  1. Nieuwe talen en tools leren
  • Door het leren van andere talen of build-tools, streef naar verdere vaardigheidsontwikkeling.
  1. Deelnemen aan de community
  • Sluit je aan bij forums of open-source projecten, deel kennis en ontwikkel praktische vaardigheden samen.

Slotwoorden

In dit artikel hebben we stap voor stap uitgelegd hoe je GCC installeert en gebruikt op Ubuntu. Het behandelt alles van de basis tot probleemoplossing, waardoor het gemakkelijk is, zelfs voor beginners, om hun ontwikkelomgeving in te stellen.

Een laatste opmerking:
Gebruik dit artikel als referentie om GCC toe te passen in je eigen projecten, geniet van programmeren en raadpleeg de FAQ of aanvullende bronnen als er nieuwe vragen opkomen.

In het volgende artikel plan ik de basis van C- en C++-syntax en geavanceerde ontwikkeltechnieken te behandelen. Blijf op de hoogte!

侍エンジニア塾