- До начала использования Docker контейнера: Настройка переменных окружения
- Начало работы
- Сборка проекта и запуск тестов
- Дополнительно
Шаблон репозитория для практического задания 4-го спринта «Мидл разработчик С++»
Шаблон репозитория для практического задания 1-го спринта «Мидл разработчик С++»
Для корректной работы контейнера добавьте в ваш bash-профиль две переменные окружения и обновите его, выполнив следующие команды:
# Set USER_UID and USER_GID
echo -e '\nexport USER_UID=$(id -u)\nexport USER_GID=$(id -g)' >> ~/.bashrc
# Update bash-profile
source ~/.bashrcПеред началом работы с Docker контейнером, убедитесь, что переменные окружения доступны, внутри используемой вами IDE (например в терминале внутри VS Code):
printf "\nUSER_UID=${USER_UID=}\nUSER_GID=${USER_GID}\n\n"- Убедитесь, что переменные окружения из предыдущего шага доступны внутри вашей IDE
- Нажмите зелёную кнопку
Use this template, затемCreate a new repository. - Назовите свой репозиторий.
- Склонируйте созданный репозиторий командой
git clone your-repository-name. - Создайте новую ветку командой
git switch -c development. - Откройте проект в
Visual Studio Code. - Нажмите
F1и откройте проект в dev-контейнере командойDev Containers: Reopen in Container.
Данный репозиторий использует три инструмента:
-
Conan — свободный менеджер пакетов для C и C++ с открытым исходным кодом (MIT). Позволяет настраивать процесс сборки программ, скачивать и устанавливать сторонние зависимости и необходимые инструменты. Подробнее о Conan:
-
cmake — генератор систем сборки для C и C++. Позволяет создавать проекты, которые могут компилироваться на различных платформах и с различными компиляторами. Подробнее о cmake:
-
VS Code Dev Docker container - Docker контейнер, который содержит полностью настроенное окружение для выполнение задания. Подробнее об этой функциональности:
- https://habr.com/ru/articles/822707/ - "Почти все, что вы хотели бы знать про Docker"
- https://code.visualstudio.com/docs/devcontainers/containers - официальная документация VS Code
- https://www.youtube.com/watch?v=p9L7YFqHGk4 - "Docker container for VS Code"
- https://www.youtube.com/watch?v=pg19Z8LL06w&t=174s&pp=ygUPRG9ja2VyY29udGFpbmVy - "Docker in 1 hour"
Используйте F5 для выполнения следующих шагов:
- Создания папки
build - Вызова
conanкоманд для установки требуемых библиотек и запуска процесса сборки - Запуска
lldbотладчика
Также, вы можете запустить только команду построения проекта. Для этого:
-
вызовите командное окно, нажав
F1 -
Выберите команду
Tasks: Run Task
- Выберите команду сборки проекта, например
GCC: Build Debug app
./build/analyzer -f files/sample.pyДля запуска тестов вы можете воспользоваться удобным расширением C++ TestMate:
В этом репозитории настроен автоматический запуск clang-format (файл конфигурации — .vscode/settings.json) при сохранении любого файла с кодом.
Убедитесь, что эта функциональность работает:
- Добавьте несколько пустых линий в любой файл.
- Сохраните файл.
- Если пустые линии были удалены, всё работает, если нет — убедитесь, что clangd работает (при открытии файла с кодом в самом низу VS Code на голубой полоске должно быть написано clangd: idle). Для этого:
- нажмите
F1и выполните командуclangd: Download language server; - нажмите
F1и выполните командуclangd: Restart language server; - нажмите
F1и выполните командуDeveloper: Reload Window.
- нажмите
В Visual Studio Code настройки параметров для запуска отладчика находятся в файле .vscode/launch.json. Поскольку в этом файле для запуска приложения уже есть одна конфигурация Launch *, то для запуска отладчика достаточно нажать F5 или открыть окно Run and Debug комбинацией клавиш Ctrl+Shift+D.
Для настройки автодополнения Ctrl + Space нажмите F1 и выполните команду clangd: Download language server. VS Code сам предложит установить подходящую версию clangd (всплывашка в правом нижнем углу). После завершения установки перезагрузите окно кнопкой перезапуска справа снизу или с помощью F1 и выполните команду Developer: Reload Window.
Если всё сделали правильно, то после успешной сборки проекта вы сможете использовать автодополнение.





