Komplexní průvodce instalací a používáním GCC na Ubuntu

1. Úvod

Co je GCC?

GCC (GNU Compiler Collection) je open‑source kompilátor schopný kompilovat více programovacích jazyků, jako jsou C a C++. Je široce používán jako výchozí kompilátor v mnoha distribu.

Klíčové vlastnosti GCC:

  • Podporuje více jazyků, včetně C, C++, Fortran, Java a dalších.
  • Open source a volně použitelný kýmkoli.
  • Umožňuje rychlou a spolehlivou kompilaci.

Proč používat GCC na Ubuntu?

  1. Součástí standardního balíčku Repozitáře Ubuntu obsahují GCC ve výchozím nastavení, což usnadňuje instalaci.
  2. Bohatá podpora a dokumentace Díky velkému počtu uživatelů po celém světě je k dispozici spousta informací pro řešení problémů a přizpůsobení.
  3. Zdarma k použití Můžete si vytvořit výkonné vývojové prostředí za nízkou cenu.
  4. Snadno přizpůsobitelné Můžete spravovat více verzí GCC, což vám umožní vytvořit prostředí vhodné pro každý projekt.

Shrnutí

V tomto článku jsme představili přehled GCC a výhody jeho používání na Ubuntu. GCC je výkonný kompilátor, který podporuje více jazyků a je zdarma k použití, a na Ubuntu je zvláště snadné jej nainstalovat.

2. Předpoklady

Aktualizace systému a kontrola závislostí

Nejprve aktualizujte informace o balíčcích Ubuntu na nejnovější stav. To pomáhá předcházet chybám během instalace.

1. Aktualizujte systém na nejnovější stav

sudo apt update
sudo apt upgrade
  • sudo apt update : Aktualizuje seznam balíčků na nejnovější verzi.
  • sudo apt upgrade : Aktualizuje nainstalované balíčky na jejich nejnovější verze.

Poznámky:

  • Aktualizace může trvat několik minut.
  • Pokud se po aktualizaci zobrazí zpráva „restart required“, restartujte systém.

Kontrola vývojových nástrojů

Pro instalaci GCC jsou vyžadovány základní vývojové nástroje a balíčky. Spusťte následující příkaz pro předběžnou instalaci potřebných balíčků.

sudo apt install build-essential

Tento příkaz nainstaluje základní vývojovéstroje, včetně GCC.

Příklady nainstalovaných balíčků:

  • gcc (C kompilátor)
  • g++ (C++ kompilátor)
  • make (nástroj pro sestavení)

Kontrola stavu instalace

Pro potvrzení, které balíčky jsou nainstalovány a kontrolu jejich verzí, použijte následující příkaz:

gcc --version

Ukázkový výstup:

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

Pokud vidíte tento výstup, můžete potvrdit, že GCC byl nainstalován správně.

Shrnutí předpokladů

Do tohoto bodu jste splnili předpoklady potřebné k instalaci GCC.

  • Aktualizovali a povýšili systém na nejnovější stav.
  • Nainstalovali požadované balíčky pro přípravu prostředí.
  • Ověřili stav instalace GCC a verzi.

3. Jak nainstalovat GCC

Základní kroky instalace

Na Ubuntu lze GCC snadno nainstalovat z oficiálního repozitáře. Postupujte podle níže uvedených kroků.

  1. Nainstalujte balíček build-essential
    sudo apt install build-essential
    

Tento příkaz nainstaluje GCC, G++ a kompletní sadu vývojových nástrojů.

  1. Potvrďte průběh instalace Během instalace, pokud se zobrazí „Proceed? (Y/n)“, zadejte „Y“ a stiskněte Enter.

Jak ověřit po instalaci

Po dokončení instalace ověřte verzi GCC, abyste potvrdili, že vše bylo nainstalováno správně:

gcc --version

Ukázkový výstup:

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

Pokud se zobrazí informace o verzi, jak je uvedeno, GCC byl úspěšně nainstalován.

Instalace dalších nástrojů nebo knihoven

Někdy samotná instalace GCC není dostačující, takže můžete chtít nainstalovat následující doplňkové balíčky:

  1. Nainstalujte G++ (C++ kompilátor)
    sudo apt install g++
    
  1. Nainstalujte ladicí nástroje
    sudo apt install gdb
    
  1. Nainstalujte vývojové manuálové stránky
    sudo apt install manpages-dev
    

Toto zajišťuje, že můžete okamžitě odkazovat na nápovědu a manuální stránky související s GCC, když je potřebujete.

Řešení problémů s neúspěšnými instalacemi

  1. Balíček nenalezen
    E: Unable to locate package build-essential
    

Řešení: Aktualizujte informace o repozitáři:

sudo apt update
sudo apt upgrade
  1. Došlo k chybám oprávnění
    Permission denied
    

Řešení: Použijte sudo na začátku příkazů pro spuštění s administrátorskými oprávněními.

Shrnutí kroků instalace

V této sekci jsme vysvětlili, jak instalovat GCC a ověřit instalaci, stejně jako jak instalovat další balíčky.

Klíčové body:

  • Použijte sudo apt install build-essential pro rychlou instalaci.
  • Zkontrolujte verzi pro ověření stavu instalace.
  • Přidejte G++, gdb a další nástroje podle potřeby.

4. Základní použití GCC

Vytvoření a kompilace jednoduchého programu

  1. Vytvoření vzorového programu

Nejprve vytvořte jednoduchý program „Hello, World!“:

nano hello.c

Když se otevře editor, zadejte následující kód:

#include <stdio.h>

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

Po zadání stiskněte Ctrl + X pro uložení, poté Y pro potvrzení a ukončení.

Kompilace programu

Dále kompilujte tento program pomocí GCC:

gcc hello.c -o hello

Vysvětlení příkazu:

  • gcc : Příkaz kompilátoru.
  • hello.c : Soubor zdrojového kódu ke kompilaci.
  • -o hello : Určuje název výstupního souboru jako „hello.“

Spuštění zkompilovaného programu

Spuštěte zkompilovaný program následujícím příkazem:

./hello

Očekávaný výstup:

Hello, World!

Pokud je toto zobrazeno, program byl úspěšně zkompilován a spuštěn.

Zpracování chyb

  1. Chyby způsobené chybami v kódování

Příklad chybové zprávy:

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

Řešení:
Chybová zpráva uvádí umístění (např. řádek 3). Zkontrolujte svůj kód a opravte syntaktické chyby.

  1. Chyba kompilace

Příklad chyby:

gcc: command not found

Řešení:
GCC nemusí být nainstalován. Reinstalujte pomocí:

sudo apt install build-essential
  1. Chyba za běhu

Příklad chyby:

bash: ./hello: Permission denied

Řešení:
Pokud soubor nemá oprávnění k vykonání, použijte:

chmod +x hello
./hello

Možnosti optimalizace

GCC umožňuje používat možnosti optimalizace pro zlepšení výkonu programu.

Příklad: Určení úrovně optimalizace

gcc -O2 hello.c -o hello
  • -O1 : Základní optimalizace.
  • -O2 : Pokročilejší optimalizace.
  • -O3 : Maximální optimalizace (upřednostňující rychlost vykonávání).

To vám pomůže efektivněji optimalizovat rychlost vykonávání nebo velikost kódu.

Shrnutí

V této sekci jsme probrali vytváření, kompilaci a spuštění základního programu pomocí GCC.

Klíčové body:

  • Naučili jste se, jak vytvořit vzorový kód a zkompilovat ho.
  • Prozkoumali jsme, jak zpracovávat chyby, když nastanou.
  • Představili jsme možnosti optimalizace pro zlepšení výkonu.

5. Správa více verzí

Instalace více verzí

Na Ubuntu můžete instalovat různé verze GCC současně. Instalujme více verzí pomocí následujících kroků.

  1. Kontrola dostupných verzí
    sudo apt search gcc-
    

Tento příkaz vám umožní zobrazit seznam verzí GCC v repozitáři.

Příklad výstupu:

gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
  1. Instalace požadovaných verzí

Například instalujte GCC 9 a GCC 10:

sudo apt install gcc-9 gcc-10

Po dokončení instalace přejděte k konfiguraci přepínání verzí.

Jak přepínat verze

Ubuntu podporuje příkaz update-alternatives pro snadné přepínání verzí GCC.

  1. Registrace nainstalovaných verzí GCC s update-alternatives

Spusťte:

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

V tomto nastavení je GCC 10 registrován jako preferovaný výchozí (priorita 100).

  1. Vyberte verzi k použití

Použijte následující příkaz k manuálnímu výběru požadované verze:

sudo update-alternatives --config gcc

Ukázka výstupu:

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:

Zadejte požadované číslo a stiskněte Enter.

Použití specifické verze pro každý projekt

Pokud chcete používat konkrétní verzi pro každý projekt, můžete příslušně přepnout symbolické odkazy.

  1. Vytvořte nebo aktualizujte odkaz
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Tento příkaz nastaví GCC 9 jako výchozí verzi.

  1. Ověřte verzi
    gcc --version
    

Ověřte, že je nakonfigurovaná verze správně aplikována.

Shrnutí

V této sekci jsme vysvětlili, jak instalovat více verzí GCC a používat update-alternatives k snadnému přepínání.

Klíčové body:

  • Nainstalujte verze, které potřebujete, a spravujte je pomocí update-alternatives .
  • Můžete také nastavit symbolické odkazy k použití specifické verze pro každý projekt.

6. Řešení problémů

Chyby během instalace a jak je řešit

Příklad chyby 1: Balíček nenalezen

E: Unable to locate package build-essential

Příčina:
Seznam balíčků není aktuální, nebo má konfigurace repozitáře problémy.

Řešení:
Spusťte následující příkazy k aktualizaci informací o repozitáři:

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

Další oprava:

sudo add-apt-repository universe
sudo apt update

To může umožnit nalezení balíčku.

Příklad chyby 2: Odepřen přístup

Permission denied

Příčina:
Příkazy nejsou spouštěny s administrativními právy.

Řešení:
Přidejte sudo před všechny instalační příkazy.

sudo apt install build-essential

Chyby během kompilace a jak je řešit

Příklad chyby 1: Kompilátor nenalezen

gcc: command not found

Příčina:
GCC není nainstalován nebo není PATH nastaven správně.

Řešení:
Zkontrolujte, zda je GCC nainstalován:

sudo apt install gcc

Pokud je nainstalován, zkontrolujte a upravte symbolický odkaz:

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

Příklad chyby 2: Chyba propojení knihovny

undefined reference to 'main'

Příčina:
Funkce main není definována ve vašem programu, nebo selhalo propojení.

Řešení:
Ujistěte se, že je zahrnuta funkce main, a překompilujte s možnostmi propojení, např.:

gcc -o output main.c -lm

Chyby za běhu a jak je řešit

Příklad chyby 1: Žádné oprávnění k provedení

bash: ./program: Permission denied

Příčina:
Spustitelný soubor nemá oprávnění k provedení.

Řešení:
Udělte oprávnění k provedení:

chmod +x program
./program

Příklad chyby 2: Chybějící knihovny

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

Příčina:
Požadované sdílené knihovny nejsou nainstalovány.

Řešení:
Zkontrolujte název chybějící knihovny a nainstalujte ji:

sudo apt install libXXX-dev

Chyby během přepínání verzí a řešení

Příklad chyby: Přepnutí nebylo aplikováno

gcc --version

Pokud se nepřepnutá verze nezobrazí, znovu zkontrolujte svá nastavení update-alternatives.

Řešení:

  1. Zkontrolujte seznam alternativ:
    sudo update-alternatives --config gcc
    
  1. Vyberte správné číslo.
  2. Aktualizujte symbolický odkaz.
    sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
    

Shrnutí

V této sekci jsme vysvětlili běžné chyby vyskytující se během instalace a používání GCC a jejich strategie řešení.

Klíčové poznámky:

  • Chyby instalace lze často vyřešit aktualizací repozitářů nebo úpravou nastavení repozitářů.
  • Chyby kompilace lze vyřešit kontrolou kódu a možností odkazování.
  • Chyby za běhu často vznikají z problémů s oprávněními nebo chybějících knihoven.
  • Problémy s přepínáním verzí lze řešit pomocí symbolických odkazů a úprav update-alternatives.

7. FAQ

Jak mohu nainstalovat nejnovější verzi GCC?

Otázka:
Chci nainstalovat nejnovější verzi GCC, ale výchozí repozitář nabízí pouze starší verze. Co bych měl udělat?

Odpověď:
K instalaci nejnovější verze GCC můžete přidat repozitář PPA.

  1. Přidejte repozitář PPA:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    
  1. Aktualizujte seznam balíčků:
    sudo apt update
    
  1. Nainstalujte nejnovější verzi:
    sudo apt install gcc-12
    
  1. Ověřte verzi:
    gcc --version
    

Jak odinstaluji GCC?

Otázka:
Chci odinstalovat GCC. Jak bych měl postupovat?

Odpověď:
GCC můžete odstranit pomocí následujících příkazů:

sudo apt remove gcc
sudo apt autoremove

Pokud chcete také odstranit související nástroje, přidejte:

sudo apt remove build-essential

Co bych měl udělat, pokud jsou vybíratelné pouze starší verze?

Otázka:
I když používám update-alternatives --config gcc, zobrazují se pouze starší verze. Jak mohu přidat novější verzi?

Odpověď:
Ručně přidejte novější verzi do nastavení alternativ.

  1. Nainstalujte verzi, kterou potřebujete:
    sudo apt install gcc-12
    
  1. Přidejte ji ručně do alternativ:
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
    
  1. Vyberte verzi:
    sudo update-alternatives --config gcc
    

Co dělat, pokud dojde k chybám závislostí?

Otázka:
Během instalace GCC se objevují chyby závislostí. Jak je mohu vyřešit?

Odpověď:
Chyby závislostí mohou vzniknout proto, že systém není aktuální. Spusťte:

sudo apt update
sudo apt upgrade

Pokud to nevyřeší problém, automaticky opravte poškozené závislosti:

sudo apt --fix-broken install

Jak použít specifickou verzi GCC pro konkrétní projekt?

Otázka:
Chci používat různé verze GCC pro jednotlivé projekty. Jak to nastavím?

Odpověď:
Vytvořte symbolický odkaz uvnitř adresáře projektu, který ukazuje na požadovaný binární soubor GCC.

  1. Vytvořte lokální odkaz:
    ln -s /usr/bin/gcc-9 ./gcc
    
  1. Používejte ho lokálně v příkazech pro kompilaci:
    ./gcc -o program program.c
    

Co bych měl udělat, pokud dojde k chybě „command not found“?

Otázka:
I když jsem nainstaloval GCC, vidím „gcc: command not found.“ Co bych měl udělat?

Odpověď:
Nejprve ověřte instalaci:

dpkg -l | grep gcc

Pokud GCC není nainstalován, přeinstalujte ho:

sudo apt install gcc

Pokud to stále selže, zkontrolujte symbolický odkaz:

ls -l /usr/bin/gcc

Pokud je odkaz poškozený, opravte ho:

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

Shrnutí

V této sekci jsme představili často kladené otázky a jejich konkrétní řešení pro GCC.

Klíčové poznámky:

  • Nejnovější verzi lze nainstalovat prostřednictvím repozitářů PPA.
  • Odinstalace a správa verzí se snadno řeší pomocí update-alternatives.
  • Poskytli jsme také konkrétní příklady příkazů pro řešení problémů.

8. Závěr a další kroky

Rekapitulace tohoto článku

  1. Přehled GCC a jeho role
  • GCC je výkonný kompilátor podporující více jazyků, jako je C a C++.
  • Na Ubuntu lze snadno nainstalovat z oficiálního repozitáře, což ho činí ideálním pro budování vývojových prostředí.
  1. Kroky instalace a přípravy
  • Aktualizovali jsme systém a nainstalovali balíček build-essential.
  • Také jsme ověřili verze a řešili problémy se závislostmi.
  1. Základní použití
  • Vysvětlili jsme, jak vytvořit, zkompilovat a spustit ukázkové programy.
  • Diskutovali jsme, jak reagovat na chyby a používat optimalizační možnosti.
  1. Správa více verzí a přepínání
  • Vysvětlili jsme, jak použít update-alternatives k přepínání mezi verzemi GCC podle projektu.
  1. Řešení problémů a FAQ
  • Pokryli jsme možné chyby při instalaci a používání a poskytli konkrétní řešení.

Další zdroje

Zde jsou zdroje, které pomohou při dalším učení nebo aplikacích:

  1. Oficiální dokumentace Ubuntu
  1. Oficiální dokumentace GNU GCC
  1. Průvodci Linux console
  • Linux Console publikuje informace o řešení problémů napříč tématy Linuxu.
  1. Vzdělávací stránky a fóra

Další kroky

  1. Použít GCC v reálných projektech
  • Používejte GCC ve skutečných projektech a provádějte pokročilejší vývoj.
  1. Používat knihovny a rozšíření
  • Instalujte další knihovny podle potřeby, abyste rozšířili funkce svého projektu.
  1. Učit se nové jazyky a nástroje
  • Učením se dalších jazyků nebo nástrojů pro sestavování usilujte o další rozvoj dovedností.
  1. Zapojit se do komunity
  • Připojte se k fórům nebo open-source projektům, sdílejte znalosti a společně rozvíjejte praktické dovednosti.

Závěrečné slovo

V tomto článku jsme krok za krokem vysvětlili, jak nainstalovat a používat GCC na Ubuntu. Pokrývá vše od základů po řešení problémů, což i začátečníkům usnadňuje nastavení vývojového prostředí.

Jedna poslední poznámka:
Používejte tento článek jako referenci pro aplikaci GCC ve svých projektech, užívejte si programování a v případě nových otázek se obraťte na FAQ nebo další zdroje.

V dalším článku plánuji pokrýt základy syntaxe C a C++ a pokročilé vývojové techniky. Zůstaňte naladěni!