Роль препроцессора, компилятора и компоновщика
в программировании на C++
Степень завершённости урока: 20%
Интегрированная среда установки с компилятором установлены, что дальше? Создание программ на языке программирования C++ имеет свои уникальные особенности, связанные с работой препроцессора, компилятора и компоновщика. Для того, чтобы компьютер смог запустить программу на C++, нам необходимо скомпилировать наш исходный код, превратив его в исполняемый файл с расширением .EXE. Самая простая программа на C++ состоит из одного файла с расширением .cpp, поэтому в данном уроке будет идти речь о компиляции исходного кода (файл code.cpp) в исполняемую программу (code.exe).
Процесс компиляции кода С++ в исполняемый файл состоит из нескольких последовательных этапов: 1) работа препроцессора, 2) работа компилятора, 3) работа компоновщика (иногда используется слово линкер).
Директивы препроцессора позволяют выполнить определённые операции до того, как наш исходный код начнёт компилироваться. Например, подключение заголовочных файлов (header files) с расширением .H. Если говорить проще, то директива препроцессора указывает компилятору, что в наш исходный код необходимо добавить содержимое заголовочного файла. Директивы препроцессора выглядят следующим образом:
#include <iostream>
#include "WindowsProject1.h"Строчки выше означают, что препроцессор сообщает компилятору, что содержимое заголовочных файлов iostream и WindowsProject1 должно быть добавлено в наш код. Для первого заголовочного файла (iostream) используются угловые скобки, т.к. файл является частью стандартной библиотеки C++. Для второго заголовочного файла используются кавычки, потому что файл WindowsProject1.h не является частью стандартной библиотеки C++. Если вы используете свой заголовочный файл, тогда необходимо использовать кавычки.
На следующем этапе компилятор переводит наш код C++ в машиночитаемый (бинарный) вид, создавая объектные файлы с расширением .OBJ или .O. Открыть такой файл мы не можем.
На заключительном этапе к работе подключается компоновщик (линкер), который из разрозненных объектных файлов создаёт единый исполняемый файл с расширением .EXE (наша программа), который мы наконец можем запустить.
В графическом виде этот процесс можно представить в следующем виде:
Страница обновлена 29 декабря 2024 года.