` Sätt in innehållet i standardbibliotekets rubrikfiler i din kod.
* makroutvidgning: Makron som definieras med hjälp av `#Define 'ersätts med sina definitioner.
* villkorad sammanställning: Direktiv som `#ifdef` Kontrollera vilka delar av koden sammanställs baserat på villkor.
Utgången från detta steg är inte direkt mänsklig läsbar; Det är en modifierad version av din källkod.
3. Kompilering:
Kompilatorn (`GCC ') översätter den förbehandlade koden till monteringsspråk, specifikt för mål CPU-arkitekturen (t.ex. x86-64). Denna monteringskod representerar ditt program i en låg nivå som datorn kan förstå mer direkt.
4. Montering:
Monteraren (som ") konverterar monteringskoden till objektkod. Objektfiler (vanligtvis med en ".o" -förlängning, t.ex. "myProgram.o") innehåller maskininstruktioner men är ännu inte helt körbara eftersom de kan bero på andra objektfiler eller bibliotek.
5. Länkning:
Linker (`LD`) kombinerar objektkoden för ditt program med nödvändiga bibliotek (som standard C -biblioteket,` libc`) för att skapa en enda körbar fil. Detta innebär att lösa referenser mellan olika delar av koden och integrera de nödvändiga biblioteksfunktionerna.
Kompileringskommandot:
Det typiska kommandot för att sammanställa ett C -program i CentOS med GCC är:
`` `bash
GCC MyProgram.C -O MYPROGRAM
`` `
* `GCC`:åberopar GCC -kompilatorn.
* `MyProgram.C`:Anger källkodfilen.
* `-o MyProgram`:Anger namnet på den utgångsliga körbara filen. Om det utelämnas kommer det körbara namnet att vara "A.out".
Exempel:
Låt oss säga att du har `myProgram.C`:
`` `c
#include
int main () {
printf ("hej, värld! \ n");
return 0;
}
`` `
Du skulle kompilera och köra det så här:
`` `bash
GCC MyProgram.C -O MYPROGRAM
./myProgram
`` `
Detta kommer att producera en körbar fil med namnet `MyProgram ', som du sedan kan köra från kommandoraden. Utgången kommer att vara "Hej, världen!".
Mer avancerad sammanställning:
* Flera källfiler: Om ditt program är spridd över flera ".c" -filer kan du sammanställa dem på en gång:
`` `bash
gcc fil1.c fil2.c -o myprogram
`` `
* optimering: Flaggor som `-o2` (nivå 2-optimering) kan förbättra prestandan för din körbara.
`` `bash
GCC MyProgram.C -o MyProgram -O2
`` `
* felsökning: `-G`-flaggan lägger till felsökningsinformation till den körbara, vilket gör det lättare att använda en felsökare som` gdb '.
`` `bash
GCC MyProgram.C -o MyProgram -G
`` `
Sammanfattningsvis involverar ett C-program i CentOS i CentOS en serie steg som orkestreras av GCC Toolchain, och förvandlar din mänskliga läsbara kod till ett maskinuttagbart program. Att förstå dessa steg kan hjälpa dig att diagnostisera sammanställningsfel och optimera din byggprocess.