Перейти к содержимому
Topos Uranos

Краткое содержание

В этом уроке устанавливается и испытывается среда, в которой предстоит работать на протяжении всего курса. Сначала объясняется, что устанавливается и зачем: компилятор, который является отдельной программой; редактор Visual Studio Code, который его вызывает; официальное расширение редактора для C++; и терминал, из которого компилятор вызывается без посредников. Затем даётся полное руководство для каждой системы: в Windows это MSYS2 со средой UCRT64 и GCC или, как альтернатива, компилятор Microsoft; в macOS это инструменты командной строки Xcode с Clang или GCC из Homebrew, если версии Apple недостаточно; в Linux это GCC из дистрибутива в Debian и Ubuntu, Fedora и Arch. Следуют установка редактора и его расширения, одинаковая во всех трёх системах, и настройка консоли Windows, чтобы она печатала и читала текст в UTF-8. В конце даны проверочная программа, которая печатает строку на русском языке и стандарт C++, применяемый компилятором, и частые сбои установки, каждый со своей причиной и способом устранения.

Цели обучения

  1. Установить в своей системе компилятор с поддержкой C++23 и узнать его версию из терминала.
  2. Установить Visual Studio Code и его официальное расширение для C++ и открыть в нём рабочую папку.
  3. Скомпилировать и запустить первую проверочную программу из терминала и из редактора.
  4. Диагностировать и устранить не менее трёх частых сбоев установки (компилятор не найден, старая версия, стандарт не распознан).

Что устанавливается и зачем

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

У этого разделения есть практическое следствие, от которого зависят все руководства этого урока. Когда редактор «компилирует», на самом деле он пишет в терминале команду вроде g++ main.cpp -o main, точно так же, как мог бы написать её сам учащийся. Отсюда следует, что всё, что делает редактор, можно сделать и вручную в терминале, текстовом окне, в котором пишутся команды для операционной системы; и что, если редактор даёт сбой, терминал позволяет выяснить, где дефект: в редакторе или в компиляторе. Поэтому курс с первого дня работает с обоими: с редактором ради удобства, с терминалом, чтобы знать, что происходит.

Устанавливаются четыре компонента.

  • Компилятор со своей стандартной библиотекой. Курс использует стандарт C++23, поэтому компилятор должен его поддерживать, а его библиотека должна содержать заголовочный файл <print>, который даёт std::println. В Windows и Linux будет использоваться GCC (команда для C++ у него называется g++), в macOS будет использоваться Clang (clang++). Нужен GCC 15 или новее: заголовочный файл <print> появился в библиотеке GCC в версии 14, но печать целой коллекции через std::println, которой курс пользуется начиная с урока Программы, компиляторы и C++ и во многих последующих уроках, появилась только в 15-й. В macOS нужны инструменты Xcode 16 или новее.
  • Редактор: Visual Studio Code, бесплатный и одинаковый во всех трёх системах, так что указания курса годятся для всех.
  • Официальное расширение C/C++ от Microsoft для Visual Studio Code, которое учит редактор языку: подсвечивает код, отмечает ошибки по ходу набора, дополняет имена и умеет вызывать компилятор и отладчик.
  • Отладчик, GDB в Windows и Linux, LLDB в macOS: программа, которая позволяет остановить выполнение и посмотреть состояние программы. Он устанавливается сейчас вместе с компилятором и понадобится начиная с раздела 4.

Приведённые ниже руководства независимы: каждый учащийся следует руководству для своей системы и затем переходит к части о Visual Studio Code. В блоках команд знак $ в начале строки обозначает приглашение терминала и не набирается; строки без него показывают ответ терминала. Указанные официальные сайты являются единственными, откуда стоит что-либо скачивать: установщик, полученный из другого места, может оказаться устаревшим или изменённым.