Terminal.md 2.58 KB

Работа с терминалом

1. Конфигурация

$ mkdir ./build/
$ cd ./build/
$ cmake .. -DCMAKE_BUILD_TYPE=<config>

Вместо <config> можно использовать одну из существующих конфигураций:

  • Debug быстро компилируется и подходит для разработки.
  • ASan, LSan, MSan, UBSan подходят для отладки ошибок сегментации и других проблем с памятью. Рекомендуется запустить ваш код с санитайзерами перед отправкой на проверку!
  • Release нужен для сборки кода с оптимизациями и проверки скорости выполнения.

2. Сборка

$ cmake --build ./build/

Исполняемые файлы ./build/solution/image-transformer и ./build/tester/image-matcher будут собраны, их можно использовать для ручного тестирования.

3. Тестирование

$ cmake --build ./build/ --target check
# ИЛИ
$ cd ./build/
$ ctest --output-on-failure

Бонус: ssh + git

Как настроить SSH ключи

$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub

В настройках профиля GitLab нужно открыть категорию SSH Keys, добавить новый ключ и скопировать содержимое id_rsa.pub туда.

Как склонировать форк

$ git clone ssh://git@gitlab.se.ifmo.ru:4815/<my username>/assignment-image-rotation.git
$ cd ./assignment-image-rotation/

Как отправить свои изменения обратно в форк

$ git add ./solution/
$ git status
$ git commit -m "Lab complete"
$ git push origin master

После того, как вы откроете merge request, каждое новое изменение, добавленное таким образом, будет появляться там автомагически.

Как обновить свою лабораторную, если преподаватель попросил "подтянуть к себе свежие изменения" из основного репозитория

$ git remote add upstream ssh://git@gitlab.se.ifmo.ru:4815/programming-languages/assignment-image-rotation.git
$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git remote remove upstream