Объяснение компилятора C ++: что такое компилятор и как его использовать?

Введение в компиляторы C ++

Чтобы начать работу с C ++, вам нужно немного узнать о компиляторах и о том, как C ++ работает на вашем компьютере.

Когда все сказано и сделано, компьютеры понимают только один язык, машинный. Машинный язык полностью состоит из двоичных битов или нулей и единиц.

Хотя можно было бы программировать в двоичном формате, это было бы невероятно утомительно и отнимало бы много времени. Итак, мы, люди, разработали языки программирования, чтобы упростить разработку программного обеспечения.

Ассемблер - это прямое соотношение 1 к 1 с машинным языком. Такие языки, как C, C ++ и COBOL, немного выше, и их нужно скомпилировать. Он идет еще выше. Такие языки, как JavaScript и Python, имеют компоненты, которые переводятся на C ++ или другие языки низкого уровня перед компиляцией, что фактически делает их «более высокими» языками, чем C или C ++.

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

Как работают компиляторы

Компиляторы - это служебные программы, которые преобразуют ваш код в исполняемые файлы машинного кода.

Когда вы запускаете компилятор для своего кода, сначала препроцессор считывает исходный код (файл C ++, который вы только что написали). Препроцессор ищет любые директивы препроцессора (строки кода, начинающиеся с символа #). Директивы препроцессора заставляют препроцессор каким-то образом изменять ваш код (обычно добавляя некоторую библиотеку или другой файл C ++).

Затем компилятор обрабатывает предварительно обработанный код построчно, переводя каждую строку в соответствующую инструкцию машинного языка. Это также обнаружит любые синтаксические ошибки, присутствующие в вашем исходном коде, и вызовет ошибку в командной строке.

Наконец, если ошибок нет, компилятор создает объектный файл с двоичным кодом машинного языка, необходимый для работы на вашем компьютере. Хотя объектного файла, который только что создал компилятор, вполне достаточно, чтобы что-то сделать на вашем компьютере, он все еще не является рабочим исполняемым файлом вашей программы на C ++. Это последний важный шаг на пути к исполняемой программе.

C ++ содержит обширную библиотеку для помощи в выполнении сложных задач, таких как ввод-вывод и манипуляции с оборудованием. Вы можете включать эти библиотеки с директивами препроцессора, но препроцессор не добавляет их автоматически в ваш код.

Чтобы у вас была окончательная исполняемая программа, другая утилита, известная как компоновщик, должна объединить ваши объектные файлы с функциями библиотеки, необходимыми для выполнения кода.

Думайте об этом как о наличии всех необходимых блоков для строительства дома. Компилятор создал все блоки, но линкер - это тот, который склеивает их все вместе, чтобы наконец создать дом. Как только это будет сделано, у вас теперь есть работающий исполняемый файл!

Как скомпилировать файл

Допустим, у вас есть файл C ++ с именем helloWorld.cpp

Если вы в Windows

Использование и IDE как CodeBlocks

Это так же просто, как щелкнуть кнопки сборки и запуска, они создадут файл в папке проекта.

img

Использование командной строки

  1. Откройте командную строку разработчика - для этого шага вам понадобится Microsoft Visual Studio или какая-либо другая IDE, которая позволит вам скомпилировать вашу программу из командной строки. Вы также можете поискать в Интернете компиляторы C ++.
  2. Перейти к исходному коду напрямую
  3. Запустите компилятор для исходного кода (при условии, что вы используете компилятор Microsoft Visual Studio) cl /EHsc helloWorld.cpp

Теперь это создаст объектный файл и автоматически свяжет его для вас. Если вы заглянете в ту же папку, вы увидите исполняемый файл hellWorld.exe (обратите внимание на расширение exe).

  1. Введите helloWorldв подсказку для запуска исполняемого файла

Кроме того, многие IDE позволяют быстро создавать и просматривать вашу программу. Это может быть проще, поскольку ваша версия Windows может не поставляться с предустановленной утилитой компилятора.

Если у вас Linux или OSX

  1. Откройте окно терминала и перейдите в каталог исходного кода.
  2. Запустите компилятор с исходным кодом g++ helloWorld.cpp -o helloWorld

Это создаст объектный файл и автоматически свяжет его для вас. Загляните в папку, и вы увидите исполняемый файл helloWorld.exe (обратите внимание на расширение exe).

  1. Введите ./helloWorldв окне терминала, чтобы запустить исполняемый файл

g ++ - стандартный компилятор Linux и отличная утилита. Он поставляется в комплекте с операционной системой.

ПРИМЕЧАНИЕ: чтобы скомпилировать и выполнить ваш код напрямую, запустите, g++ -o helloWorld helloWorld.cpp; ./helloWorldпоэтому, когда вам нужно скомпилировать и запустить код несколько раз, нажмите стрелку вверх и введите.

Есть несколько разных типов компиляторов. Два перечисленных - это два, которые обычно входят в состав Windows или Linux / OSX.

Подробнее о C ++

  • Введение в программирование на C ++
  • Объектно-ориентированное программирование на C ++
  • Алгоритмы графов и структуры данных, объясненные на C ++ и Java
  • Как скомпилировать код C ++ в VS Code