Что происходит, когда вы вводите gcc main.c

Прежде чем мы начнем объяснять, что происходит, когда мы набираем «gcc main.c», нам нужно объяснить, что такое C и что делает gcc?

Что такое С?

C — это компьютерный язык программирования. Это означает, что вы можете использовать C для создания списков инструкций для компьютера. Это один из тысяч используемых в настоящее время языков программирования, который существует уже несколько десятилетий. По данным IEEE (Институт инженеров по электротехнике и электронике) входит в десятку лучших языков программирования в мире.

C — это то, что называется компилируемым языком. Это означает, что как только вы напишете свою программу на C, вы должны запустить ее через компилятор C, чтобы превратить вашу программу в исполняемый файл, который компьютер сможет запускать (выполнять). Программа C является удобочитаемой для человека формой, тогда как исполняемый файл, который выходит из компилятора, является машиночитаемой и исполняемой формой.

Изображение выше является примером кода C.

Что делает gcc?

Помните, мы говорили, что вам нужно скомпилировать программу C, чтобы вы могли ее выполнить, ну, gcc — это компилятор C. Позвольте мне выразить это другими словами, люди могут читать код C, но ваша машина не может, что вам нужно сделать, это «перевести» ваш код на машинный язык, чтобы машина могла его запустить (выполнить), это в основном то, что вы сделать, когда вы компилируете, вы делаете его читаемым для машины.

Что происходит, когда вы набираете $gcc main.c?

Эта команда запускает компилятор, и требуется 4 шага, чтобы преобразовать ваш код C в исполняемый машинный код.

Сначала идет препроцессор, он генерирует какой-то промежуточный файл (удалить комментарии, включить заголовочный файл, заменить имя макроса кодом), затем компилятор, он генерирует ассемблерный код (языки ассемблера, он не читается компьютером), затем ассемблер, он преобразует ассемблерный код в двоичный код и, наконец, компоновщик, он свяжет наш код с библиотеками. Теперь компиляция завершена, и вы можете запустить исполняемый файл.