Базовый рабочий процесс кода C ++: исходный файл - ›компилятор -› исполняемый двоичный файл. Но как получить исполняемый двоичный файл из исходного кода?

Давайте сначала посмотрим код на C ++:

Что находится в исходном файле?

Первое, что мы видим в приведенном выше коде: «#include ‹iostream›», это инструкция препроцессора. Все, что начинается с «#», является оператором препроцессора. Когда компилятор получает исходный файл, он предварительно обрабатывает все операторы препроцессора. Затем у нас есть «include», он находит файл «iostream», берет все его содержимое и вставляет его в текущий файл. Это называется заголовочным файлом.

Затем у нас есть функция int main (). Это точка входа в приложение. Итак, когда мы запускаем приложение, компьютер начинает выполнение кода, который начинается с основной функции. Когда программа запущена, компьютер выполняет строки кода по порядку. Первое, что будет выполнено в приведенном выше коде, - это «std :: cout ‹

И, кстати, причина, по которой нам пришлось включить файл «iostream», заключается в том, что «cout» требует объявления (cout определяется внутри файла iostream). В операторе cout у нас есть «‹

Исходный файл в исполняемый двоичный файл

Чтобы получить исполняемый двоичный файл из исходного файла, нам нужно пройти несколько этапов. Во-первых, перед компиляцией файла выполняется оценка инструкции препроцессора «#include ‹iostream›». После оценки инструкций препроцессора наш файл будет согласован (файлы заголовков не компилируются).
Файл cpp компилируется в объектный файл (т.е. файл с расширением (.obj)). Затем, когда мы запускаем компоновщик кода, объектный файл превращается в исполняемый файл (т.е. файл с расширением .exe). Это окно вывода, которое мы получаем, когда компилируем и запускаем программы на C ++.

Однако в этом случае, поскольку мы скомпилировали только один файл, фактического связывания не происходит. Но если бы мы скомпилировали проект c ++, в котором было несколько файлов cpp, то каждый из этих файлов cpp будет скомпилирован, и мы получим объектные файлы для каждого из них, а затем компоновщик свяжет все объектные файлы вместе и создаст один exe-файл.