logo

GCC Linux

In Linux staat de GCC voor GNU Compiler-collectie . Het is een compilersysteem voor de verschillende programmeertalen. Het wordt voornamelijk gebruikt om de C- en C++-programma's te compileren. Het neemt de naam van het bronprogramma als noodzakelijk argument; rest-argumenten zijn optioneel, zoals foutopsporing, waarschuwing, objectbestand en koppeling van bibliotheken.

GCC is een kerncomponent van de GNU-toolchain. Met behulp van de GCC worden verschillende open-sourceprojecten samengesteld, zoals de Linux-kernel en GNU-tools.

Het wordt gedistribueerd onder de GPL (General Public License). De eerste versie, GCC 1.0 , werd uitgebracht in 1987. Het was alleen voor de programmeertaal C, maar in hetzelfde jaar werd het uitgebreid voor de C++ programmeertaal . Later werd het ontwikkeld voor andere programmeertalen zoals Objective-C, Objective-C++, Fortran, Java , Ada, Go en meer. De nieuwste versie heeft de sterk verbeterde implementatie van de programmeertalen.

Het is de officiële partner van GNU OS; daarom is het aangenomen als de standaard compiler van de op Linux gebaseerde systemen.

is eiwitvet

Onderdelen van GCC

GCC is een draagbare tool en kan op veel besturingssystemen worden uitgevoerd. Het kan ook worden geporteerd naar ramen door een aantal hulpmiddelen te gebruiken, zoals Cygwin, MinGW en MinGW-W64 . Omdat het een sleutelcomponent is van de GNU-toolchain, bevat het de volgende componenten voor het ontwikkelen van applicaties en besturingssystemen:

GNU Compiler-collectie (GCC): Het is een compilersuite voor veel talen, zoals C/C++ en Objective-C/C++.

GNU-merk: Het is een automatiseringstool die wordt gebruikt voor het compileren en bouwen van applicaties.

GNU Binutils: Het is een suite die binaire hulpprogramma's bevat, zoals koppelaar En assembler .

GNU-foutopsporing (GDB). Het wordt gebruikt om de applicaties te debuggen.

GNU Autotools: Het is een bouwsysteem dat enkele hulpprogramma's bevat, zoals Autoconf, Autoheader, Automake en Libtool.

GNU Bizon: Het is een parsergenerator als lex en yacc.

GCC-compilerproces

De GCC compileert en maakt een programma uitvoerbaar in de volgende vier stappen:

GCC Linux

Voorverwerking: In deze stap maakt de GNU-preprocessor (cpp.exe) een tussenbestand met de broncode. De preprocessor bevat de headers (#include) en breidt de macro's uit (#define). Overweeg het onderstaande commando:

 cpp hello.c > hello.i 

Met de bovenstaande opdracht wordt een tussenbestand 'hello.i.' gemaakt.

Compilatie: In deze stap wordt de voorbewerkte broncode gecompileerd tot assemblagecode voor een specifieke processor.

 gcc -S hello.i 

Met de bovenstaande opdracht wordt een assemblagebestand 'hello.s.' gemaakt. De optie '-s' wordt gebruikt om aan te geven dat de assemblagecode moet worden geproduceerd in plaats van de objectcode.

Montage: De assemblagecode wordt omgezet in machinecode. Er wordt een objectbestand 'hello.o.' gemaakt.

 as -o hello.o hello.s 

Linker: De Linker (ld.exe) is de laatste stap van het compileerproces. Het koppelt de objectcode aan de bibliotheekcode en produceert een uitvoerbaar bestand.

 ld -o hello.exe hello.o 

Met de bovenstaande opdracht wordt een uitvoerbaar bestand 'hello.exe' gemaakt.

Installatie van GCC op Linux

Standaard wordt het geleverd met de meeste Linux-distributies. We kunnen het verifiëren door de onderstaande opdracht uit te voeren:

 gcc -version 

Met de bovenstaande opdracht wordt de geïnstalleerde versie van de GCC-tool weergegeven. Als het niet is geïnstalleerd, volgt u de onderstaande stappen om het te installeren:

Stap 1: Update de pakketlijst.

Om de pakketlijst bij te werken, voert u de volgende opdracht uit:

 sudo apt update 

Er wordt om het beheerderswachtwoord van het systeem gevraagd. Voer het wachtwoord in. Het systeempakket wordt bijgewerkt. Beschouw de onderstaande uitvoermodule:

GCC Linux

Stap 2: Installeer het build-essential-pakket.

Het bevat verschillende pakketten zoals gcc, g++ en make utility. Voer de onderstaande opdracht uit om het te installeren:

 sudo apt install build-essential 

Met de bovenstaande opdracht worden de vereiste pakketten voor het GCC-hulpprogramma geïnstalleerd. Nu kunnen we het GCC-hulpprogramma op onze machine gebruiken. Beschouw de onderstaande uitvoermodule:

GCC Linux

Stap 3: Controleer de installatie.

Om de installatie te verifiëren, voert u de opdracht gcc -version als volgt uit:

 gcc --version 

Het toont de geïnstalleerde versie van het GCC-hulpprogramma. Om meer specifieke details over de versie weer te geven, gebruikt u de optie '-v'. Beschouw de onderstaande uitvoer:

GCC Linux

Hier hebben we met succes het GCC-hulpprogramma geïnstalleerd. Laten we begrijpen dat we het moeten gebruiken. We zullen enkele c-programma's maken en uitvoeren met behulp van GCC.

Voer het eerste C-programma uit met gcc

Creëer een basis c-programma 'Hallo Wereld!'. Maak een bestand 'hello.c' en plaats onderstaande code erin:

statisch trefwoord in Java
 #include int main() { printf('Hello, world!
'); return 0; } 

Compileer nu hello.c als volgt:

 gcc hello.c 

Als we hello.c rechtstreeks uitvoeren, wordt de fout gegenereerd. Maak het uitvoerbaar. Het standaard uitvoerbare bestand voor het Linux-systeem is a.out. Om het bestand uit te voeren, voert u de opdracht chmod als volgt uit:

 chmod a+x a.out 

Voer nu het c-programma uit als:

 ./a.out 

Beschouw de onderstaande uitvoer:

GCC Linux

GCC-opdrachtvoorbeelden

Enkele nuttige voorbeelden van de gcc-opdracht zijn als volgt:

    Geef de naam van het objectbestand op

Standaard maakt de gcc-opdracht het objectbestand aan als 'a.uit .' Als u de standaarduitvoerbestandsnaam wilt wijzigen, gebruikt u de '-O' keuze.

Laten we het basis gcc-commando uitvoeren:

 gcc hello.c 

De bovenstaande opdracht genereert het objectbestand 'a.out.' Om de objectbestandsnaam op te geven, voert u de opdracht als volgt uit:

 gcc hello.c -o hello 

Het genereert het uitvoerbestand 'hallo.' Beschouw de onderstaande uitvoer:

GCC Linux
    Schakel alle waarschuwingen in

Om alle waarschuwingen in de uitvoer in te schakelen, gebruikt u de '-Muur' optie met het gcc-commando. Laten we een variabele maken in de hoofdfunctie van hello.c. Beschouw de onderstaande code:

hallo.c:

 #include int main() { int a; printf('Hello, world!
'); return 0; } 

Als we de bovenstaande code compileren met de optie -Wall. Het zal de waarschuwingen geven. Voer de onderstaande opdracht uit om het bestand te compileren:

 gcc -wall hello.c 

Met het bovenstaande commando worden de waarschuwingen weergegeven. Beschouw de onderstaande uitvoer:

GCC Linux
    Produceer de stapsgewijze uitvoer van het compilatieproces

We kunnen alleen de stapsgewijze uitvoer van het compilatieproces produceren.

Produceer de preprocessoruitvoer

We kunnen alleen de voorprocesuitvoer produceren door de optie '-E' te gebruiken. Overweeg het onderstaande commando:

 gcc -E hello.c > hello.i 

Van het bovenstaande commando, een file 'Hallo ik' dat voorverwerkte uitvoer bevat, wordt gegenereerd. Beschouw de onderstaande uitvoer:

GCC Linux

Produceer de assemblagecode

Om de assemblagecode te produceren, voert u de opdracht uit met de optie '-S'. Overweeg het onderstaande commando:

 gcc -S hello.c > hello.s 

Het bovenstaande commando genereert de 'hello.s.' bestand dat de assemblagecode bevat. Beschouw de onderstaande uitvoer:

GCC Linux

Produceer de gecompileerde code

adder vol

We kunnen alleen de gecompileerde code produceren door de optie '-C' te gebruiken. Overweeg het onderstaande commando:

 gcc -C hello.c 

De bovenstaande opdracht genereert een bestand 'a.out', met alleen de machinecode of gecompileerde code. Beschouw de onderstaande uitvoer:

GCC Linux

Produceer alle tussenbestanden van het compilatieproces

We kunnen alle tussenbestanden van het compilatieproces produceren door de optie '-save-temp' te gebruiken. Beschouw de onderstaande uitvoer:

 gcc -save-temps hello.c 

Met de bovenstaande opdracht worden alle tussenliggende bestanden en uitvoerbare bestanden in één keer gegenereerd. Beschouw de onderstaande uitvoer:

GCC Linux
    Druk de uitvoer uitvoerig af.

We kunnen uitgebreide informatie weergeven over elke stap die met de gcc-opdracht wordt gezet. Om dit te doen, voert u het commando uit met de optie '-v'.

 gcc -W -v hello.c 

Beschouw de onderstaande uitvoermodule:

GCC Linux

We hebben enkele nuttigste voorbeelden van het gcc-commando besproken. Omdat de gcc-opdracht een groot aantal opties biedt, kun je overal vastlopen tijdens het gebruik ervan. Laten we eens kijken hoe u zelf hulp kunt krijgen vanaf de terminal.

GCC-handleiding

Als u ergens vastloopt tijdens het gebruik van de gcc-opdracht, kunt u hulp krijgen van uw terminal. Om toegang te krijgen tot de handleiding vanaf de opdrachtregel, voert u het man-commando als volgt uit:

 man gcc 

Met de bovenstaande opdracht wordt de handleiding weergegeven met een beschrijving en een lijst van de ondersteunde opties met een korte beschrijving. Beschouw de onderstaande uitvoermodule:

GCC Linux

u kunt door de uitvoer scrollen om meer te lezen. Druk op de 'h'-toets voor hulp en op q om de handleiding te verlaten en terug te keren naar de terminal.