Настройка рабочей среды
Установка и настройка VS Code
Установка VS Code
Установка VS Code не представляет сложностей. Достаточно скачать установочный файл со страницы загрузок и запустить его.
Далее необходимо установить Git for Windows, MinGw, CMake и Miniconda3.
Теперь настроим VS Code для удобной работы с языками C++ и Python.
Расширения VS Code
Установите следующие расширения VS Code:
Выбор интерпретатора python
При начале работы с кодом python (файлом с расширением .py
) VS Code предложит выбрать интерпретатор python, который будет использоваться для подсветки кода, проверки синтаксиса и вывода подсказок:
Можете, например, выбрать интерпретатор из недавно созданного окружения nsu.
Создадим файл test.py
, содержащий одну строку:
print('Hello, world!')
Исполнить этот скрипт можно, открыв консоль в VS Code с помощью сочетания клавиш Ctrl+J
и набрав в ней
python test.py
В правом верхнем углу окна находится кнопка с зеленым треугольником ▷, нажатие на которую приводит к тому же результату:
Настройка работы с GCC
Создайте файл test.cpp
, содержащий следующий код:
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
Скомпилируем его с помощью компилятора GCC и командной строки. Откройте консоль в VS Code (Ctrl+J
) и исполните команду
> g++ test.cpp
Компилятор создал исполняемый файл a.exe
. Запустите его:
> .\a.exe
Hello, world!
Работает. Настроим теперь VS Code для автоматизации этого действия. Выберите в меню пункт Terminal -> Configure Default Build Task...
:
Выберите из выпавшего списка пункт g++.exe
. В результате будет сгенерирован файл .vscode/tasks.json
подобный такому:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: cpp.exe build active file",
"command": "D:\\mingw\\mingw32\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Теперь при нажатии клавиш Ctrl+Shift+B
или выборе пункта меню Terminal -> Run Build Task
будет выполняться компиляция открытого файла. Для файла test.cpp
будет создан исполняемый файл test.exe
.
Работа с CMake
Откройте новую рабочую директорию VS Code, создайте в ней файл main.cpp
, содержащий следующий код:
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
и файл CMakeLists.txt
со следующим содержанием:
cmake_minimum_required(VERSION 3.0.0)
add_executable(test main.cpp)
Эти два файла составляют минимальный CMake-проект. Выполним сначала сборку CMake-проекта через консоль: создайте в рабочей директории поддиректорию build
, в которой будет осуществляться сборка, и перейдите в неё:
> mkdir build; cd build
Выполните настройку проекта и запустите сборку:
> cmake -G "MinGW Makefiles" ..
> cmake --build .
В первой команде мы указали, что сборка будет осуществляться с помощью MinGW и что файлы проекта расположены в родительской директории (путь ..
). Вторая команда осуществляет сборку в текущей директории (путь .
). В директории build
должен появиться исполняемый файл test.exe
.
Расширение VS Code для работы с CMake позволяет автоматизировать сборку проекта. Выберите рабочую директорию VS Code (комбинация клавиш Ctrl+K+O
), содержащую файлы main.cpp
и CMakeLists.txt
. Наберите комбинацию клавиш Ctrl+Shift+P
и в строке сверху наберите команду >CMake: Configure
. Это запустит настройку инструментов CMake. После завершения настройки в нижней части окна появятся инструменты управления сборкой:
Кнопку "Сборка" запускает сборку, а кнопка ▷ - исполняемый файл.
Если автоматическая настройка CMake привела к ошибке, то, вероятно, инициализация CMake выполнилась без параметра -G "MinGW Makefiles"
. В этом случае выполните эту команду в консоли, как показано выше. Достаточно выполнить это действие один раз, после чего конфигурация этого и других проектов будет выполняться верно.
Работа с git
Покажем как можно работать с git-репозиторием через VS Code. Выполните fork репозитория задания Hello, Classroom
на GitHub:
Это действие создает новый репозиторий в Вашем аккаунте. Разрешите автоматическое тестирование решения, нажав на большую зеленую кнопку во вкладке Actions:
Новый репозиторий необходимо клонировать на Вашу локальную систему. Удобнее всего это делать с помощью протокола ssh. Для этого сначала необходимо включить OpenSSH Client, который по умолчанию выключен.
Взаимодействие с GitHub репозиторием будет происходить по протоколу ssh с помощью техники шифрования с открытым ключом. Создать пару из приватного и публичного ключа можно в консоли:
>ssh-keygen
Generating public/private rsa key pair.
По умолчанию сгенерированные ключи будут расположены в директории ~\.ssh
. Файл с публичным ключом называется id-rsa.pub
. Публичный ключ нужно добавить на GitHub. Для этого откройте раздел SSH and GPG keys
в меню Settings
и нажмите на кнопку New SSH key
:
Заполните открывшуюся форму. В поле Key
нужно скопировать содержимое файла id-rsa.pub
. Проследите, чтобы при копировании не появились лишние переносы строк. Весь ключ должен быть расположен в одной строке.
Теперь мы готовы к клонированию репозитория. Выберите на компьютере директорию, в которой Вы будете работать с заданиями курса и перейдите в неё. Откройте страницу репозитория hello-classroom
в Вашем аккаунте GitHub и скопируйте строку для клонирования через ssh:
Выполните в консоли команду git clone
:
> git clone git@github.com:fakestud/hello-classroom.git
Cloning into 'hello-classroom'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), done
Строка git@github.com:fakestud/hello-classroom.git
есть скопированная выше строка. Репозиторий был клонирован в директорию hello-classroom
. Выберите её в качестве рабочей директории VS Code. Прочитайте файл README.md
, содержащий инструкции по решению задания. После решения задания выполните локальную проверку:
> conda activate nsu
> pip install -r .\requirements.txt
> g++ -std=c++17 main.cpp -o a.out
> test_cmd tests/ .\a.out
Running 1 tests on 4 CPUs...
test1
Command: .\a.out
Success
All 1 tests passed.
Тесты пройдены успешны. Значит, мы готовы к синхронизации репозитория GitHub с нашей локальной версией. В командной строке для этого достаточно выполнить следующие команды:
git add main.cpp
git commit -m "Task solved"
git push -u origin master
Редактор VS Code позволяет выполнить эти действия через графический интерфейс. VS Code отслеживает изменения локальной версии репозитория. Откройте вкладку контроля версий слева и посмотрите на список изменившихся файлов. В нашем случае это должен быть только файл main.cpp
. Выполните команду git add
, нажав на кнопку +:
Затем команду git commit
, нажав на кнопку ✓ и введя комментарий в текстовом поле:
Наконец, выполните команду git push
: