Току-що завършихте първия си блок от C код — нека го наречем main.c — който искате да стартирате. Да кажем, че изглежда така:

Е, вашият компютър не може да стартира тази програма сам. Нуждае се от помощта на компилатор, за да превърне вашата програма в нещо, което компютърът всъщностразбира: двоичен, езикът, съставен изцяло от 1 и 0.

GCC (GNU Compiler Collection) е един от най-широко използваните компилатори на Linux системи. GNU, което означава забавно рекурсивното „GNU не е Unix“, е „подобна на Unix операционна система“, която е безплатна. Най-вероятно ще видите GNU в комбинация с Linux ядро, но са налични и други ядра, базирани на GNU. В пакет с GNU идва GCC, програмата, която ще използваме, за да компилираме нашия код. GCC може да компилира множество езици, включително C, FORTRAN, Java и други.

Компилирането на код следва четири основни стъпки, за да се създаде изпълним файл, който нашият компютър ще изпълнява. Първата от тези стъпки, „предварителна обработка“, премахва коментари, които изглеждат по следния начин:

/* това е коментар */

и замества дефинираните променливи с техните стойности. Предварителната обработка също добавя кода на всички включени файлове, като например невероятния общ stdio.h.

След това „компилаторът“ пренаписва вашия код в Assembly. Сглобяването е технически четимо за хора, но не е особено разбираемо по начина, по който са по-модерните езици. След това създаденият асемблен код се премества в „асемблера“.

Асемблерът създава блокове от двоичен код, за да може компютърът да работи. В зависимост от дължината на вашия код, асемблерът може да изведе повече от един блок, където „линкерът“ влиза в игра.

Линкерът свързва тези двоични блокове заедно и създава изпълним файл от тях. Тези изпълними файлове са файловете, които компютрите могат да изпълняват. В зависимост от операционната система те могат да имат различни разширения – едно, което може да ви е познато, ако използвате Windows, е .exe. Сега можете да стартирате изведения файл и той трябва да отпечата „Hello world.“!