Linuxban a GCC jelentése GNU fordítógyűjtemény . Ez egy fordítórendszer a különböző programozási nyelvekhez. Főleg a C és C++ programok fordítására szolgál. A forrásprogram nevét szükséges argumentumnak veszi; A rest argumentumok nem kötelezőek, mint például a hibakeresés, a figyelmeztetés, az objektumfájl és a könyvtárak összekapcsolása.
A GCC a GNU eszközlánc alapvető összetevője. Különféle nyílt forráskódú projekteket fordítanak a GCC segítségével, mint például a Linux kernel és a GNU eszközök.
A GPL (General Public License) alatt terjesztik. Az első verzió, GCC 1.0 , 1987-ben jelent meg. Csak a C programozási nyelvhez készült, de ugyanebben az évben kiterjesztették a C++ programozási nyelv . Később más programozási nyelvekhez fejlesztették ki, mint például az Objective-C, Objective-C++, Fortran, Jáva , Ada, Go és még sok más. Legújabb verziója a programozási nyelvek jelentősen továbbfejlesztett megvalósításával rendelkezik.
Ez a GNU OS hivatalos partnere; ezért a Linux alapú rendszerek szabványos fordítójaként fogadták el.
adatbázis
A GCC összetevői
A GCC egy hordozható eszköz, és számos operációs rendszeren futhat. Ezenkívül portolni is lehet ablakok néhány eszköz használatával, mint pl Cygwin, MinGW és MinGW-W64 . Mivel a GNU eszközlánc kulcsfontosságú összetevője, a következő összetevőket tartalmazza az alkalmazások és operációs rendszerek fejlesztéséhez:
GNU fordítógyűjtemény (GCC): Ez egy fordítócsomag számos nyelvhez, mint például a C/C++ és az Objective-C/C++.
GNU gyártmány: Ez egy automatizálási eszköz, amelyet alkalmazások összeállítására és készítésére használnak.
GNU Binutils: Ez egy programcsomag, amely bináris segédeszközöket tartalmaz, mint pl linker és szerelő .
GNU Debugger (GDB). Az alkalmazások hibakeresésére szolgál.
GNU Autotools: Ez egy olyan összeállítási rendszer, amely néhány segédeszközt tartalmaz, mint például az Autoconf, az Autoheader, az Automake és a Libtool.
GNU Bison: Ez egy elemző generátor, mint lex és yacc.
GCC fordítói folyamat
A GCC a következő négy lépésben fordít le és futtathatóvá tesz egy programot:
Előfeldolgozás: Ebben a lépésben a GNU előfeldolgozó (cpp.exe) létrehoz egy köztes fájlt a forráskóddal. Az előfeldolgozó tartalmazza a fejléceket (#include), és kibontja a makrókat (#define). Vegye figyelembe az alábbi parancsot:
cpp hello.c > hello.i
A fenti parancs egy köztes fájlt hoz létre a 'hello.i.'
Összeállítás: Ebben a lépésben az előre feldolgozott forráskód egy adott processzor összeállítási kódjává válik.
gcc -S hello.i
A fenti parancs egy 'hello.s.' összeállítási fájlt hoz létre. Az '-s' opció annak megadására szolgál, hogy az objektumkód helyett az összeállítás kódot állítsa elő.
Összeszerelés: Az összeállítási kód gépi kóddá alakul. Létrehoz egy „hello.o” objektumfájlt.
as -o hello.o hello.s
Linker: A Linker (ld.exe) a fordítói folyamat utolsó lépése. Összekapcsolja az objektumkódot a könyvtár kódjával, és végrehajtható fájlt hoz létre.
ld -o hello.exe hello.o
A fenti parancs egy 'hello.exe' futtatható fájlt hoz létre.
GCC telepítése Linuxra
Alapértelmezés szerint a legtöbb Linux disztribúcióhoz tartozik. Az alábbi parancs végrehajtásával ellenőrizhetjük:
gcc -version
A fenti parancs megjeleníti a GCC eszköz telepített verzióját. Ha nincs telepítve, kövesse az alábbi lépéseket a telepítéshez:
1. lépés: Frissítse a csomaglistát.
A csomaglista frissítéséhez hajtsa végre a következő parancsot:
sudo apt update
Kérni fogja a rendszergazdai jelszót, írja be a jelszót. Elkezdi frissíteni a rendszercsomagot. Tekintsük az alábbi kimeneti pillanatot:
2. lépés: Telepítse a build-essential csomagot.
Különféle csomagokat tartalmaz, például gcc, g++ és make segédprogramot. A telepítéshez hajtsa végre az alábbi parancsot:
sudo apt install build-essential
A fenti parancs telepíti a GCC segédprogramhoz szükséges csomagokat. Most már használhatjuk a GCC segédprogramot a gépünkben. Tekintsük az alábbi kimeneti pillanatot:
3. lépés: Ellenőrizze a telepítést.
A telepítés ellenőrzéséhez hajtsa végre a gcc -version parancsot az alábbiak szerint:
gcc --version
Megjeleníti a GCC segédprogram telepített verzióját. A verzió pontosabb részleteinek megjelenítéséhez használja a „-v” kapcsolót. Vegye figyelembe az alábbi kimenetet:
Itt sikeresen telepítettük a GCC segédprogramot. Értsük meg használni. Néhány c programot fogunk létrehozni és végrehajtani a GCC segítségével.
Futtassa az első C programot a gcc-vel
Hozzon létre egy alaplapot c program 'Helló Világ!'. Hozzon létre egy 'hello.c' fájlt, és írja be az alábbi kódot:
#include int main() { printf('Hello, world! '); return 0; }
Most fordítsa le a hello.c fájlt a következőképpen:
gcc hello.c
Ha közvetlenül futtatjuk a hello.c-t, akkor hibát fog dobni. Tegye végrehajthatóvá, a Linux rendszer alapértelmezett végrehajtható fájlja az a.out. A fájl végrehajtásához hajtsa végre a chmod parancsot az alábbiak szerint:
chmod a+x a.out
Most futtassa a c programot a következőképpen:
./a.out
Vegye figyelembe az alábbi kimenetet:
GCC parancs Példák
Néhány hasznos példa a gcc parancsra:
Alapértelmezés szerint a gcc parancs így hozza létre az objektumfájlt 'a.out .' Ha meg szeretné változtatni az alapértelmezett kimeneti fájlnevet, használja a '-O' választási lehetőség.
tavaszi keret
Végezzük el az alap gcc parancsot:
gcc hello.c
A fenti parancs létrehozza az 'a.out' objektumfájlt. Az objektumfájl nevének megadásához hajtsa végre a következő parancsot:
gcc hello.c -o hello
Ez létrehozza a „hello” kimeneti fájlt. Vegye figyelembe az alábbi kimenetet:
Az összes figyelmeztetés engedélyezéséhez a kimenetben használja a '-Fal' opciót a gcc paranccsal. Hozzunk létre egy változót a hello.c fő függvényében. Vegye figyelembe az alábbi kódot:
hello.c:
#include int main() { int a; printf('Hello, world! '); return 0; }
Ha a fenti kódot a -Wall opcióval fordítjuk. Megdobja a figyelmeztetéseket. A fájl lefordításához hajtsa végre az alábbi parancsot:
gcc -wall hello.c
A fenti parancs megjeleníti a figyelmeztetéseket. Vegye figyelembe az alábbi kimenetet:
Csak a fordítási folyamat lépésenkénti kimenetét tudjuk előállítani.
Készítse elő az előfeldolgozó kimenetét
Az '-E' opció használatával csak az előfeldolgozás kimenetét tudjuk előállítani. Vegye figyelembe az alábbi parancsot:
gcc -E hello.c > hello.i
A fenti parancsból egy fájl 'hello.én' amely előfeldolgozott kimenetet tartalmaz. Vegye figyelembe az alábbi kimenetet:
Készítse el az összeállítási kódot
Az összeállítási kód létrehozásához hajtsa végre a parancsot az „-S” opcióval. Vegye figyelembe az alábbi parancsot:
gcc -S hello.c > hello.s
A fenti parancs generálja a 'hello.s.' fájl, amely tartalmazza az összeállítás kódját. Vegye figyelembe az alábbi kimenetet:
Készítse elő a lefordított kódot
karakterlánc tartalmaz
Csak a lefordított kódot tudjuk előállítani a '-C' opció használatával. Vegye figyelembe az alábbi parancsot:
gcc -C hello.c
A fenti parancs egy 'a.out' fájlt generál, amely csak a gépi kódot vagy a lefordított kódot tartalmazza. Vegye figyelembe az alábbi kimenetet:
Készítse elő a fordítási folyamat összes közbenső fájlját
A fordítási folyamat összes köztes fájlját a '-save-temp' opció használatával előállíthatjuk. Vegye figyelembe az alábbi kimenetet:
gcc -save-temps hello.c
A fenti parancs egyszerre generálja az összes köztes fájlt, valamint a végrehajtható fájlokat. Vegye figyelembe az alábbi kimenetet:
A gcc parancs által megtett minden lépésről részletes információkat tudunk megjeleníteni. Ehhez hajtsa végre a parancsot a '-v' opcióval.
gcc -W -v hello.c
Tekintsük az alábbi kimeneti pillanatot:
Megbeszéltünk néhány leghasznosabb példát a gcc parancsra. Mivel a gcc parancs rendkívül sok lehetőséget kínál, bárhol elakadhat a használata közben. Nézzük meg, hogyan kaphat önálló segítséget a terminálról.
GCC kézikönyv
Ha bárhol elakad a gcc parancs használata közben, segítséget kérhet a termináltól. A kézikönyv parancssorból való eléréséhez hajtsa végre a man parancsot az alábbiak szerint:
man gcc
A fenti parancs megjeleníti a kézikönyvet, amely tartalmazza a leírást és a támogatott opciók listáját egy rövid leírással. Tekintsük az alábbi kimeneti pillanatot:
görgetheti a kimenetet a továbbiakért. Nyomja meg a 'h' gombot a segítségért, és a q gombot a kézikönyvből való kilépéshez és a terminálhoz való visszatéréshez.