V Linuxu znamená GCC Kolekce kompilátorů GNU . Jedná se o kompilační systém pro různé programovací jazyky. Používá se hlavně ke kompilaci programů C a C++. Jako nezbytný argument bere jméno zdrojového programu; argumenty rest jsou volitelné, jako je ladění, varování, objektový soubor a propojení knihoven.
GCC je základní součástí GNU toolchainu. Různé open-source projekty jsou kompilovány pomocí GCC, jako je jádro Linuxu a nástroje GNU.
Je distribuován pod licencí GPL (General Public License). první verze, GCC 1.0 , byl vydán v roce 1987. Byl pouze pro programovací jazyk C, ale ve stejném roce byl rozšířen o Programovací jazyk C++ . Později byl vyvinut pro další programovací jazyky jako Objective-C, Objective-C++, Fortran, Jáva , Ada, Go a další. Jeho nejnovější verze má mnohem vylepšenou implementaci programovacích jazyků.
Je oficiálním partnerem GNU OS; proto byl přijat jako standardní kompilátor systémů založených na Linuxu.
testování a typy testování
Součásti GCC
GCC je přenosný nástroj a může běžet na mnoha operačních systémech. Také to může být přeneseno na Okna pomocí některých nástrojů jako např Cygwin, MinGW a MinGW-W64 . Protože se jedná o klíčovou součást GNU toolchainu, obsahuje následující součásti pro vývoj aplikací a operačních systémů:
GNU Compiler Collection (GCC): Jedná se o sadu kompilátorů pro mnoho jazyků, jako je C/C++ a Objective-C/C++.
Značka GNU: Jedná se o automatizační nástroj, který se používá ke kompilaci a sestavování aplikací.
GNU Binutils: Jedná se o sadu, která obsahuje binární utility nástroje jako např linker a assembler .
GNU Debugger (GDB). Používá se k ladění aplikací.
GNU Autotools: Jedná se o sestavovací systém, který obsahuje některé nástroje, jako je Autoconf, Autoheader, Automake a Libtool.
GNU Bison: Je to generátor analyzátoru jako lex a yacc.
Proces kompilátoru GCC
GCC zkompiluje a udělá spustitelný program v následujících čtyřech krocích:
Předzpracování: V tomto kroku GNU preprocesor (cpp.exe) vytvoří přechodný soubor se zdrojovým kódem. Preprocesor zahrnuje záhlaví (#include) a rozšiřuje makra (#define). Zvažte níže uvedený příkaz:
cpp hello.c > hello.i
Výše uvedený příkaz vytvoří přechodný soubor 'hello.i.'
Sestavení: V tomto kroku je předzpracovaný zdrojový kód zkompilován do kódu sestavení pro konkrétní procesor.
gcc -S hello.i
Výše uvedený příkaz vytvoří soubor sestavení 'hello.s.' Volba '-s' se používá k určení, že se vytvoří kód sestavení spíše než objektový kód.
Shromáždění: Kód sestavy se převede na strojový kód. Vytvoří objektový soubor 'hello.o.'
as -o hello.o hello.s
Linker: Linker (ld.exe) je posledním krokem procesu kompilátoru. Propojí objektový kód s kódem knihovny a vytvoří spustitelný soubor.
ld -o hello.exe hello.o
Výše uvedený příkaz vytvoří spustitelný soubor 'hello.exe.'
Instalace GCC na Linux
Ve výchozím nastavení je dodáván s většinou distribucí Linuxu. Můžeme to ověřit provedením níže uvedeného příkazu:
gcc -version
Výše uvedený příkaz zobrazí nainstalovanou verzi nástroje GCC. Pokud není nainstalován, nainstalujte jej podle následujících kroků:
Krok 1: Aktualizujte seznam balíčků.
Chcete-li aktualizovat seznam balíčků, proveďte následující příkaz:
sudo apt update
Požádá vás o heslo správce systému, zadejte heslo. Začne aktualizovat systémový balíček. Zvažte níže uvedený snímek výstupu:
Krok 2: Nainstalujte balíček build-essential.
Obsahuje různé balíčky jako gcc, g++ a make utility. Chcete-li jej nainstalovat, spusťte níže uvedený příkaz:
sudo apt install build-essential
Výše uvedený příkaz nainstaluje požadované balíčky pro nástroj GCC. Nyní můžeme použít nástroj GCC v našem počítači. Zvažte níže uvedený snímek výstupu:
Krok 3: Ověřte instalaci.
Chcete-li ověřit instalaci, spusťte příkaz gcc -version takto:
gcc --version
Zobrazí nainstalovanou verzi nástroje GCC. Chcete-li zobrazit konkrétnější podrobnosti o verzi, použijte volbu '-v'. Zvažte následující výstup:
Zde jsme úspěšně nainstalovali nástroj GCC. Pojďme pochopit, jak to používat. Vytvoříme a spustíme některé programy v c pomocí GCC.
Spusťte první program C pomocí gcc
Vytvořte základní c program 'Ahoj světe!'. Vytvořte soubor 'hello.c' a vložte do něj níže uvedený kód:
#include int main() { printf('Hello, world! '); return 0; }
Nyní zkompilujte hello.c následovně:
gcc hello.c
Pokud přímo spustíme hello.c, vyhodí chybu. Udělejte to spustitelným, výchozí spustitelný soubor pro systém Linux je a.out. Chcete-li soubor spustit, spusťte příkaz chmod následovně:
chmod a+x a.out
Nyní spusťte program c jako:
./a.out
Zvažte následující výstup:
co je obj v javě
Příklady příkazů GCC
Některé užitečné příklady příkazu gcc jsou následující:
Ve výchozím nastavení příkaz gcc vytvoří soubor objektu jako 'a.out .' Pokud chcete změnit výchozí název výstupního souboru, použijte '-Ó' volba.
Proveďme základní příkaz gcc:
gcc hello.c
Výše uvedený příkaz vygeneruje objektový soubor 'a.out.' Chcete-li zadat název souboru objektu, spusťte příkaz následovně:
gcc hello.c -o hello
Vygeneruje výstupní soubor 'ahoj'. Zvažte následující výstup:
Chcete-li povolit všechna varování ve výstupu, použijte '-Stěna' možnost pomocí příkazu gcc. Vytvořme proměnnou v hlavní funkci hello.c. Zvažte níže uvedený kód:
Ahoj C:
#include int main() { int a; printf('Hello, world! '); return 0; }
Pokud zkompilujeme výše uvedený kód pomocí volby -Wall. Vyvolá to varování. Pro kompilaci souboru spusťte níže uvedený příkaz:
gcc -wall hello.c
Výše uvedený příkaz zobrazí varování. Zvažte následující výstup:
Můžeme vytvořit pouze postupný výstup procesu kompilace.
Vytvořte výstup preprocesoru
Můžeme vytvořit pouze výstup předběžného zpracování pomocí volby '-E'. Zvažte níže uvedený příkaz:
gcc -E hello.c > hello.i
Z výše uvedeného příkazu soubor 'ahoj.i' který obsahuje předzpracovaný výstup. Zvažte následující výstup:
Vytvořte kód sestavy
Chcete-li vytvořit kód sestavení, spusťte příkaz s volbou '-S'. Zvažte níže uvedený příkaz:
gcc -S hello.c > hello.s
Výše uvedený příkaz vygeneruje 'hello.s.' soubor, který obsahuje kód sestavení. Zvažte následující výstup:
Vytvořte zkompilovaný kód
datové typy java
Můžeme vytvořit pouze zkompilovaný kód pomocí volby '-C'. Zvažte níže uvedený příkaz:
gcc -C hello.c
Výše uvedený příkaz vygeneruje soubor 'a.out' obsahující pouze strojový kód nebo zkompilovaný kód. Zvažte následující výstup:
Vytvořte všechny přechodné soubory procesu kompilace
Můžeme vytvořit všechny přechodné soubory procesu kompilace pomocí volby '-save-temp'. Zvažte následující výstup:
gcc -save-temps hello.c
Výše uvedený příkaz vygeneruje všechny přechodné soubory a také spustitelné soubory najednou. Zvažte následující výstup:
Můžeme zobrazit podrobné informace o každém kroku provedeném příkazem gcc. Chcete-li tak učinit, spusťte příkaz s volbou '-v'.
gcc -W -v hello.c
Zvažte níže uvedený snímek výstupu:
Probrali jsme některé nejužitečnější příklady příkazu gcc. Protože příkaz gcc usnadňuje velké množství možností, můžete se při jeho používání kdekoli zaseknout. Podívejme se, jak získat pomoc z terminálu sami.
GCC manuál
Pokud se při používání příkazu gcc kdekoli zaseknete, můžete využít pomoc svého terminálu. Pro přístup k příručce z příkazového řádku spusťte příkaz man následovně:
man gcc
Výše uvedený příkaz zobrazí příručku, která obsahuje popis a seznam podporovaných možností se stručným popisem. Zvažte níže uvedený snímek výstupu:
můžete posouvat výstup a přečíst si více. Stisknutím tlačítka 'h' zobrazíte nápovědu a stisknutím tlačítka q opustíte příručku a vrátíte se k terminálu.