В какой папке находятся файлы создаваемые системой в процессе компиляции

Обновлено: 06.07.2024

Компиляция программ C / C ++ в Visual Studio Code [1] -MinGW-W64

Каталог статей

Visual Studio Code (далее VS Code) - один из самых популярных редакторов кода на данный момент. Он имеет открытый исходный код, кроссплатформенный, поддерживает несколько языков, богатые расширения и удобный пользовательский интерфейс. В то же время он учитывает функции некоторых IDE, таких как IntelliSense, компиляция, Отладка и т. Д. Сделали его популярным среди программистов. Но поскольку это, по сути, просто текстовый редактор, когда он был впервые установлен, в нем не было ничего, кроме основных функций редактирования, что заставляло некоторых пользователей, только начинающих работать, путаться. Поэтому, основываясь на моем собственном опыте, я кратко расскажу об установке VS Code и MinGW-W64, а также о том, как использовать MinGW-W64 для компиляции программ C / C ++ во вновь установленном VS Code.

1. Установите VS Code

Сначала мы начнем сОфициальный сайт VS CodeСкачайте последнюю версию, откройте установщик и согласитесь с соглашением.

Для других задач подбирайте их по мере необходимости. Рекомендуется проверить их все. Так будет намного удобнее для дальнейшей работы

Подтвердите правильность и начните установку.



Запустите VS Code, чтобы проверить, может ли он работать нормально

2. Установите расширение C / C ++ для VS Code.

3. Установите MinGW-W64.

4. Добавьте MinGW-W64 в путь

13

Теперь нам нужно поместить двоичный файл в каталог MinGW-W64. C:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin (Измените этот путь на свой собственный) Добавьте в системную переменную окружения Путь, метод работы следующий
Откройте панель управления и выберитеСистема и безопасность> Система , А затем щелкните порядок, как показано ниже, чтобы добавить переменные среды

Или обратитесь к другому моему руководству:Как добавить Python в системную переменную окружения Path в Win10, Метод аналогичен

5. Создайте новый проект.

Сначала создадим новый проект. Создайте новую папку в своем любимом каталоге, я создам здесь новую hello_world папка. Войдите в папку, щелкните правой кнопкой мыши пустое пространство и выберите «Открыть с помощью кода». (Вы также можете открыть папку в программе VS Code)

После открытия нажмите кнопку ниже, чтобы создать новый файл с именем hello_world.cpp

Примечание. Необходимо вручную ввести расширение файла. .cpp , Чтобы правильно определить тип файла и включить IntelliSense

Затем вводим следующие

Ctrl + S сохранить

6. Создайте и отредактируйте файл конфигурации в VS Code.

Затем нам нужно сгенерировать файлы конфигурации, необходимые для компиляции (Compile) и отладки (Debug). Сначала мы генерируем файл конфигурации, используемый для компиляции tasks.json

task.json

Нажмите Ctrl+Shift+P Сочетание клавиш, во всплывающем окне найдите Задачи, выберите Настроить задачу сборки по умолчанию.

и выберите g++ Это третий на картинке ниже

Теперь у нас есть файл конфигурации по умолчанию. tasks.json следующим образом

Примечание: мы можем получить больше информации об этом файле по ссылке в комментарии

Теперь вернемся к hello_world.cpp , Вы можете использовать его напрямую Ctrl+Shift+B Ярлык для компиляции файла

Вы можете видеть, что скомпилированный hello_world.exe файл. Нажмите Ctrl + Сочетание клавиш, чтобы открыть Терминал с VS Code, введите . \ hello_world.exe`, вы можете запустить напрямую

launch.json

Когда мы включаем GDB для отладки, нам понадобится еще один launch.json
выберите в верхней строке менюDebug > Add Configuration…

и выберите C++ (GDB/LLDB)

, затем выберите g++ Вон тот

VS Code автоматически запустит отладку и сгенерирует launch.json Файл, как показано ниже

Теперь отладка по умолчанию запускается в терминале ниже. Если нам нужно отдельное окно командной строки, мы можем добавить "externalConsole": false средний false Чтобы true , А затем отлаживайте эффект следующим образом

Примечание. Подробнее об этом файле можно узнать по ссылке в комментарии к файлу launch.json.

c_cpp_properties.json

Если мы хотим дополнительно настроить соответствующую конфигурацию расширения C / C ++, мы можем создать c_cpp_properties.json , Есть два способа использования UI и json
Ctrl+Shift+P , Найдите c / c ++, выберите любое из следующих изображений (пользовательский интерфейс - графическая операция, JSON - метод редактирования текста)

Ниже приводится обзор параметров (без усечения).



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

О папке .vscode

Мы видим еще один в папке .vscode В папке находится только что сгенерированный файл конфигурации. Поскольку то, что мы создали раньше, является общими файлами шаблонов, каждый раз, когда мы создаем новый проект в будущем, нам нужно только .vscode Скопируйте в соответствующую папку, отредактируйте и настройте по мере необходимости, вы можете напрямую использовать сочетания клавиш для компиляции и отладки, без необходимости повторять процесс снова

На данный момент руководство по использованию MinGW-W64 для компиляции программ C / C ++ в Visual Studio Code закончено.

Для создания и редактирования исходного кода Java вы можете использовать любой текстовый редактор или IDE. Этот раздел демонстрирует, как создавать, компилировать и запускать программы Java из командной строки. В разделе «Компиляция и запуск Java программ в NetBeans» показано, как это делать в IDE на примере NetBeans.

Можно вообще обойтись без IDE, а писать исходный код в любом текстовом редакторе (например, в Notepad), а компилировать в командной строке.


Внимание: файл с исходным кодом должен иметь расширение .java и иметь в точности такое же имя, как и имя публичного (public) класса. Например, файл с исходным кодом:

должен называться Welcome.java, поскольку имя public класса – Welcome.

Компилятор Java преобразовывает файл с исходным кодом Java в файл с байткодом Java. Следующая команда компилирует Welcome.java:

Если нет синтаксических ошибок, компилятор генерирует файл байкода с расширением .class. Следовательно, приведённая выше команда генерирует файл с названием Welcome.class.

Чтобы иметь возможность компилировать и запускать программы, вы должны установить JDK. Как это сделать описано в инструкциях:

Язык Java – это высокоуровневый язык программирования, но байткод Java – это низкоуровневый язык. Байткод похож на машинные инструкции, но нейтрален к архитектуре (не зависит от архитектуры) и может запускаться на любой платформе, которая имеет виртуальную машину Java – Java Virtual Machine (JVM). В отличие от физической машины, виртуальная машина – это программа, которая интерпретирует байткод Java. Это одно из главных преимуществ Java: байткод Java может работать на различных аппаратных платформах и операционных системах. Исходный код Java компилируется в байткод Java, а байткод Java интерпретируется виртуальной машиной Java. Ваш код Java может использовать код библиотеки Java. JVM выполняет ваш код вместе с кодом из библиотеки.

Выполнить Java программу – это значит запустить байткод программы. Вы можете выполнить байткод на любой платформе с JVM, которая является интерпретатором. Она (виртуальная машина Java) переводит отдельные инструкции байткода в целевой машинный языковой код. Это делается последовательно – одна инструкция за раз, а не вся программ за один присест. Каждый шаг немедленно выполняется, сразу после перевода.

Следующая команда выполняет байткод для программы, которая приведена выше:

На скриншоте ниже показан процесс компиляции и запуска:


Внимание: не используйте расширение .class в команде, когда запускаете программу. Используйте ИмяКласса для запуска программы. Если вы в командной строке используете ИмяКласса.class, то система будет пытаться работать с файлом ИмяКласса.class.class.

Справка: когда выполняется Java программа, JVM начинает с загрузки байткода класса в память, используя программу под названием загрузчик классов (class loader). Если ваша программа использует другие классы, загрузчик классов динамически подгружает их перед тем, как они понадобятся. После загрузки класса, JVM использует программу под названием контролёр байткода (bytecode verifier) для проверки правильности байткода и проверки, что байткод не нарушает ограничений безопасности Java. Java обеспечивает строгую защиту, чтобы убедиться, что файлы классов Java не подделаны и не вредят вашему компьютеру.

Педагогическое примечание: ваш инструктор может требовать от вас использовать пакеты для организации программ. Например, все программы из этой части можно поместить в пакет chapter2. Подробности о пакетах и пространствах имён будут рассмотрены далее. Также посмотрите раздел «Почему NetBeans всегда использует package».

Типичные ошибки компиляции и запуска Java программ

Команда javac не найдена

Если при запуске javac, т.е. при попытке компиляции Java программы вы получаете ошибку:

Это означает, что JDK не установлен. Либо установлен, но не настроены переменные окружения. Способы исправления очевидны:

  • установить JDK
  • настроить переменные окружения

Если JDK установлен, то можно обойтись без добавления переменной окружения. Для этого используйте абсолютный путь до исполнимого файла javac:

Ошибка Class names are only accepted if annotation processing is explicitly requested

Если попытаться скомпилировать программу следующим образом:

то возникнет ошибка:

Причина ошибки в том – что вы забыли указать расширение файла .java.

Ошибка записи (error while writing)

Компиляция заканчивается ошибкой:

Причина ошибки в том, что у компилятора (javac) недостаточно прав на запись в тот каталог, куда он пытается сохранить новый файл .class. Чтобы ошибка исчезла: предоставьте компилятору дополнительные права (запустите от имени администратора), либо сохраняйте в папку, на которую у текущего пользователя имеются права записи.

Ошибка «class is public, should be declared in a file named»

который заканчивается примерной такой ошибкой

означает, что вы неправильно назвали класс в исходном коде программы. Имя класса должно совпадать с именем файла. В данном случае файл называется Welcome.java, а класс внутри программы назван Welcomee

Error: Could not find or load main class

Если попытаться запустить программу следующим образом:

то возникнет ошибка

Причина её в том, что не нужно было добавлять к названию файла расширение .class. Виртуальная машина автоматически добавляет расширение и в приведённом примере она ищет файл Welcome.class.class

Ошибка Error: Could not find or load main class при запуске Java программы по абсолютному пути

Эта ошибка возможно при запуске Java программы по абсолютному пути:

Ошибка возникает как в Windows, так и в Linux:

Если в терминале вы находитесь в той же директории, что и файл, который вы запускаете, то не нужно указывать абсолютный путь. Например, нужно запускать так:


Если же вы находитесь в другой директории, то нужно использовать опцию -cp, после которой указать путь до каталога, где размещена запускаемая программа. А далее указать запускаемый файл без расширения .class:


Как видно из скриншота, командная строка находится в папке C:\WINDOWS\system32. Файл, который нам нужно запустить, находится в папке C:\ (корень диска). Мы указываем после ключа -cp папку C:\, а затем пишем имя файла программы без расширения – Welcome.

Аналогично нужно поступать в Linux. Пример команды:

Ошибка Main method not found in class

Если при запуске вы столкнулись с ошибкой:

Это означает, что вы не указали метод main, либо написали слово неправильно (например, Main вместо main).

Особенности компиляции и запуска Java программ в Windows

Команда "javac" не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Эта ошибка рассмотрена чуть выше. Для установки и настройки переменных окружения в Windows обратитесь к инструкции «Установка Java (JDK) в Windows».

Проблема с кодировкой в Java программах в командной строке Windows

Если вы написали программу, которая выводит кириллицу в консоль:

А в качестве результата получили крякозяблы:


Значит кодировка, в которой выводит строки ваша программа, отличается от кодировки командной строки Windows.

Для того, чтобы смена кодировки командной строки Windows не сбрасывалась после закрытия и открытия командной строки, можно внести изменения в реестр Windows. Для этого нажмите Win+x, выберите «Выполнить», в открывшееся окно введите regedit. В открывшейся программе (редактор реестра Windows) перейдите к [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun] и измените (или добавьте) значение на @chcp 65001>nul

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

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

В этой статье мы рассмотрим, как выполняется компиляция программ Linux, как происходит процесс компиляции, а также рассмотрим насколько гибко вы сможете все настроить.

Подготовка системы

Мы будем компилировать программы, написанные на Си или С++, так как это наиболее используемый язык для программ, которые требуют компиляции. Мы уже немного рассматривали эту тему в статье установка из tar.gz в Linux, но та статья ориентирована больше на новичков, которым нужно не столько разобраться, сколько получить готовую программу.

В этой же статье тема рассмотрена более детально. Как вы понимаете, для превращения исходного кода в команды процессора нужно специальное программное обеспечение. Мы будем использовать компилятор GCC. Для установки его и всех необходимых инструментов в Ubuntu выполните:

sudo apt install build-essential manpages-dev git automake autoconf

compiling6

Затем вы можете проверить правильность установки и версию компилятора:

compiling5

Но перед тем как переходить к самой компиляции программ рассмотрим более подробно составляющие этого процесса.

Как выполняется компиляция?

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

На первом этапе, еще до того как начнется непосредственно компиляция, специальный инструмент должен проверить совместима ли ваша система с программой, а также есть ли все необходимые библиотеки. Если чего-либо нет, то будет выдана ошибка и вам придется устранить проблему.

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

Затем все объектные файлы собираются в одну программу, связываются с системными библиотеками. После завершения этого этапа программу остается только установить в файловую систему и все. Вот такие основные фазы компиляции программы, а теперь перейдем ближе к практике.

Компиляция программ Linux

Первое что нам понадобиться - это исходники самой программы. В этом примере мы будем собирать самую последнюю версию vim. Это вполне нейтральная программа, достаточно простая и нужная всем, поэтому она отлично подойдет для примера.

Получение исходников

Первое что нам понадобиться, это исходные коды программы, которые можно взять на GitHub. Вы можете найти исходники для большинства программ Linux на GitHub. Кроме того, там же есть инструкции по сборке:

compiling7

Давайте загрузим сами исходники нашей программы с помощью утилиты git:

Также, можно было скачать архив на сайте, и затем распаковать его в нужную папку, но так будет удобнее. Утилита создаст папку с именем программы, нам нужно сделать ее рабочей:

Настройка configure

Дальше нам нужно запустить скрипт, который проверит нашу программу на совместимость с системой и настроит параметры компиляции. Он называется configure и поставляется разработчиками программы вместе с исходниками. Весь процесс компиляции описан в файле Makefile, его будет создавать эта утилита.

Если configure нет в папке с исходниками, вы можете попытаться выполнить такие скрипты чтобы его создать:

Также для создания этого скрипта можно воспользоваться утилитой automake:

aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf -f -Wall

Утилита automake и другие из ее набора генерируют необходимые файлы на основе файла Mackefile.am. Этот файл обязательно есть в большинстве проектов.

После того как вы получили configure мы можем переходить к настройке. Одним из огромных плюсов ручной сборки программ есть то, что вы можете сами выбрать с какими опциями собирать программу, где она будет размещена и какие дополнительные возможности стоит включить. Все это настраивается с помощью configure. Полный набор опций можно посмотреть, выполнив:

compiling1

Рассмотрим наиболее часто используемые, стандартные для всех программ опции:

  • --prefix=PREFIX - папка для установки программы, вместо /, например, может быть /usr/local/, тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;
  • --bindir=DIR - папка для размещения исполняемых файлов, должна находится в PREFIX;
  • --libdir=DIR - папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;
  • --includedir=DIR - папка для размещения man страниц;
  • --disable-возможность - отключить указанную возможность;
  • --enable-возможность - включить возможность;
  • --with-библиотека - подобно enable активирует указанную библиотеку или заголовочный файл;
  • --without-библиотека - подобное disable отключает использование библиотеки.

Вы можете выполнить configure без опций, чтобы использовать значения по умолчанию, но также можете вручную указать нужные пути. В нашем случае ./configure есть, и мы можем его использовать:

compiling2

compiling3

В таком случае нам необходимо установить требуемую библиотеку. Например, программа предлагает ncurses, поэтому ставим:

sudo apt install libncurces-dev

Приставка lib всегда добавляется перед библиотеками, а -dev - означает, что нам нужна библиотека со всеми заголовочными файлами. После удовлетворения всех зависимостей настройка пройдет успешно.

Сборка программы

Когда настройка будет завершена и Makefile будет готов, вы сможете перейти непосредственно к сборке программы. На этом этапе выполняется непосредственно преобразование исходного кода в машинный. Утилита make на основе Makefile сделает все необходимые действия:

compiling4

Дальше осталось установить саму программу, если вы использовали опцию prefix, чтобы не устанавливать программу в основную файловую систему, то можно применить стандартную опцию make:

После этого программа будет установлена в указанную вами папку, и вы сможете ее использовать. Но более правильный путь - создавать пакет для установки программы, это делается с помощью утилиты checkinstall, она позволяет создавать как deb, так и rpm пакеты, поэтому может использоваться не только в Ubuntu. Вместо make install выполните:

Затем просто установите получившийся пакет с помощью dpkg:

sudo dpkg install vim.deb

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

Если вы устанавливали программу с помощью make install, то удалить ее можно выполнив в той же папке обратную команду:

sudo make uninstall

Команда удалит все файлы, которые были скопированы в файловую систему.

Выводы

В этой статье мы рассмотрели, как выполняется компиляция программы Linux. Этот процесс может быть сложным для новичков, но в целом, все возможно, если потратить на решение задачи несколько часов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео о том, что такое компилятор и интерпретатор:

Лекция 6. Введение в ООП

Лекция 5. Тест. Обзор оставшихся тем

Не рассмотренные темы

Рассмотренные на лекциях темы рассмотрены не полностью

  • Просмотрите список приведённых выше тем. Изучите заинтересовавшие вас темы до конца семестра.
  • Какие темы рассматриваются в книге Эффективный и современный С++. Скотта Мейерса (2016)?
  • скачайте книгу Совершенный код (2-е издание, 2005 г.) Стива Макконнела
  • не обязательно составьте карту памяти (mind map) для изученных вами тем для языка C++

Занятие 4. Введение в создание приложений с помощью Qt

  • общий принцип построения приложений с ГИП, класс, обработчики событий
  • Программы с ГИП в Qt
  • Защита работ?

Программа с графическим пользовательским интерфейсом на Qt

Создание проекта в Qt Creator (Application Qt > Qt Widgets Application)
Выберете путь для сохранения содержащий только латиницу
Предпочтительный компилятор (в составе комплекта Qt) - MinGW (GCC)


Откройте файл mainwindow.ui .
Добавьте в окно вашей программы поля ввода (QLineEdit), кнопку (QPushButton) и надписи (QLabel), которые понадобятся для решения вашей первой задачи из задачника.
Задайте свои мена для элементов интерфейса (свойство ObjectName). Например для кнопки: pushbutton_calc -- кнопка для запуска вычислений.
Отредактируйте текст элементов интерфейса (свойство Text)

Если нужно, добавьте картинку на форму. Файл картинки скопируйте файл в папку сборки. Далее, добавить Label, свойство pixmap, нажать треугольник рядом, Выбрать файл. Поставьте галочку в свойстве scaledContents чтобы масштабировать картинку.

Выясните в какой папке создаётся исполняемый файл программы: вкладка Проекты (Project) - Каталог сборки

mainwindow.ui . Создайте обработчик события: ПКМ на вашей кнопке > Перейти к слоту > Clicked - ОК. Будет создано объявление функции (мтода) в файле mainwindow.h и определение в файле mainwindow.cpp

Подключите файлы с кодом, который решает вашу задачу: ПКМ на имени проекта (в дереве проекта) > Добавить существующие файлы . Скопируйте эти файлы в папку проекта перед добавлением в проект.
Подключите заголовочный файл с вашим кодом в файл с обработчиком события mainwindow.cpp .
Напишите обработчик события.
Обращение к содержимому поля ввода: ui->lineEdit_a->text()
Оператор -> - это одновременное разыменование и оператор доступа к члену класса\структуры ( . )
Преобразование строкового типа (QString) в числовой: ui->lineEdit_a->text().toFloat() Изменение текста на элементе интерфейса: ui->label_result->setText( "some text" )
Преобразование числа в строку (QString): QString::number( 3.14159 )

Храните все входные и выходные данные программы не в элементах интерфейса, а в классе отвечающим за обработку событий главного окна, в разделе private (см. пример).

Задайте ограничения для размеров элементов интерфейса (ПКМ > задать максимальный размер) Используйте компоновку элементов интерфейса для аккуратного их расположения и создания интерфейса, отзывчивого на изменение размеров окна.

Во всех файлах исходного кода укажите автора программы.

Форматирование надписей в HTML
Текст на элементах интерфейса можно форматировать в HTML: ПКМ на элементе > Изменить форматированный текст

Само изображение должно находится в папке с исполняемым файлом программы. Во время настройки стиля оно не отобразится на фоне, но появится после компиляции и запуска.

Как добавить изображение в исполняемый файл и включить отображение изображения в дизайнере форм.

  1. Добавьте файл с описанием включаемых в исполняемый файл зависимостей -- файл ресурсов: ПКМ на корне проекта > Шаблон QT | QT Resource File > задайте имя файла, например images
  2. Укажите имя файла с изображением в файле ресурсов: ПКМ на файле ресурсов > Добавить существующий > Выберете файл
  3. Чтобы использовать изображение на форме, например в label: выберете label > свойство pixmap > . > Resource root | выберете изображение из списка

Как нестроить выравнивание элементов интерфеса внутри компоновщиков (layout)
ПКМ на любом элементе внтури компановщика > Выравнивание компоновщика

Как запустить скомпилированную программу?

Нужные библиотеки можно найти в папке Qt/6.0.1/gcc_64/lib.

  • Создайте программу на QT с графическим интерфейсом пользователя рещающую задачи с массивами (создание и поиск суммы массива). Используйте ранее написанный код. Выводите данные в QPlainTextEdit

Создание приложений с графическим интерфейсом на С++ в Visual Studio

    -- обзор фреимворков от Майкрософт для создания приложений с графическим интерфейсом

Лекция 3. Файловые потоки

Передавайте параметры по ссылке в функцию в двух случаях

  • Если нужно изменять параметр внутри функции
  • Если копирование параметра при передаче по значению несёт много накладных расходов: больше чем копирование ссылки.

Для того чтобы узнать размер переменной (в байтах) используйте оператор sizeof

Дополнительно

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

  • реализуйте функции работы с массивом, но используйте vector вместо классических массивов
  • добавьте функции чтения и записи в файл; учитывайте, что перед чтением из файла нужно подсчитать число цифр в нём. пример работы с бинарными файлами: bin-files.md
  • не обязательно: создайте статическую библиотеку из вашего модуля; подключите её к основному проекту

Лекция 2. Обработка исключений, двумерные массивы, динамический массив vector

Пример обработки исключений при консольном вводе

  • static
  • лямбда-функции (не обязательно)
  • синонимы (не обязательно)
  • string

Занятие 2. Assert. Компиляция в командной строке

Автоматическое тестирование функций

Разбейте программу с предыдущего занятия на функции. Создайте тестовую функцию с помощью оператора assert. пример

Компиляция в командной строке

  1. Запустите PowerShell. Изучите переменную окружения Path: выполните команду для отображения переменной среды окружения: $env:path
    Есть ли там путь к компилятору MinGW (GCC)? Если нет, то добавьте через программу настройки "Изменение переменных среды окружения текущего пользователя". Компилятор MinGW можно найти по адресу: C:\Qt\Tools\mingw810_64\bin
  2. Определите версию С++ компилятора из GCC:
    g++ --version
  3. Создайте в Sublime Text файл с расширением cpp и исходным кодом простой программы на C++:
  • Задать число знаков после запятой при выводе в консоль:
  1. Для чего нужна переменная среды окружения Path? Как её изменить? Как посмотреть содержимое?
  2. Какие команды (программы) командной строки вы знаете? Как просмотреть содержимое текущей папки? Как сменить текущую папку?
  3. Как называется программа из MinGW (GCC) компилирующая С++ код? Какие параметры есть у этой программы?
  4. Почему компилятору не нужно указывать имена заголовочных (.h) файлов?
  5. Что такое кодовая таблица символов?
  6. Как сгенерировать случайное целое число от 0 до Х? А как в интервале от А до B?
  7. Как инициализировать генератор случайных чисел?

Кодировка

Windows не использует кодировку Юникод в командной строке по умолчанию, поэтому вывод символов не из кодовой таблицы ASCII будет сломан. Включить кодирование Юникода UTF-8: $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding

Оптимизация и размер файла

Размер исполняемого файла после компиляции может показаться избыточным. Это происходит из-за включения в файл всех подключаемых библиотек -- статическая линковка (см. этапы компиляции программы на C++).

  • Выполните пункты 1-6 на домашнем компьютере
  • Разберите всё, что не понятно. Напишите комментарии.
  • Напишите документацию к программе в комментариях. В том числе укажите назначение всех подключаемых файлов и укажите автора.
  • Конспект: структура консольного приложения на C++ в VS 2019. Основные файлы проекта. Обозреватель решений. Решение и проект. Добавление новых и существующих файлов. Удаление файлов из проекта и удаление с диска. Компиляция и сборка. Виды сборки.
    -- страница документации -- компиляция в командной строке компилятором -- Синтаксис командной строки компилятора MSVC

C++, структура программы, ввод и вывод, пространства имён.

  1. Решите первую задачу на языке C++ из задачника по программированию. Используйте среду разработки Visual Studio.
  2. Дополнительно: создайте динамический массив, заполните его случайными целыми числами, выведете на экран. Разбейте работу на функции. Поместите их в отдельные h и cpp файлы. Объявите своё пространство имён в этих файлах.

Математические константы

Включение поддержки С++20

Visual Studio: свойства проекта > Свойства конфигурации | C\C++ | Язык : Стандарт языка = Стандарт ISO C++20 (/std:c++20)

Qt Creator: Добавить в файл проекта .pro: CONFIG += console c++20

Не все версии компиляторов MSVC (Visual Studio) и MinGW (используется по-умолчанию в QtCreator) поддерживают стандарт С++20. В программе, копилируемой GCC (MinGW) можно вывести версию последнего самого нового поддерживаемого стандарта:

Установите на домашний компьютер:

  • Qt Creator вместе с компилятором MinGW (GCC)
  • Visual Studio 2019

Вопросы

  1. В чём разница между IDE и компилятором?
  2. Какие режимы запуска программы есть в VisualStudio? Чем они отличаются?
  3. Как выглядит структура программы на C++?
  4. Как подключить библиотеку? Что такое пространство имён?
  5. Как работает директива компилятора include ?
  6. Как объявляются переменные в C++?
  7. Как выводить данные в консоль? Как запрашивать ввод с клавиатуры?

Конспект на тему:

  • include guard в GCC и MSVC
  • перечисляемый тип в C++
  • ссылки на функции в C++ с использованием using
  • элипсис в C++ (не обязательно)

Конспекты можно делать в Ворде, но рекомендуется использовать markdown и загружать на github.

Читайте также: