Skip to content

Latest commit

 

History

History

Заготовка проекта для курса "ООП (С++)" ФИТ НГУ

Этот репозиторий содержит пример того, как можно настроить свой проект с использованием кросплатформенной системы сборки CMake и библиотеки тестирования GoogleTest.

Содержимое:

  1. main.cpp - реализация функции main. Не рекомендуется добавлять в этот файл что-то еще;
  2. task1/2.h, task1/2.cpp - файлы реализации задачи;
  3. task1/2_test.cpp - тесты (с использованием GoogleTest);
  4. CMakeLists.txt - правила сборки для CMake;
  5. .gitignore - (для Git) правила игнорирования типичных для проектов C++/CMake временных файлов и папок.

Подготовка к сборке:

  1. Убедитесь, что в системе установлен компилятор C++. Для Windows проще всего установить Visual Studio (компилятор идёт вместе с ней), но есть и другие варианты (например, mingw/cygwin + gcc). Для других систем (Linux, Mac OS) установите gcc.
  2. Установите CMake.

Как собрать проект из командной строки:

  1. Cоздайте папку build внутри проекта. Перейдите в неё. Все дальнейшие действия нужно выполнять из этой папки.
  2. Запустите cmake ... Результатом этой операции будет создание билд-скриптов в текущей папке. Это нужно сделать один раз.
  3. Запустите сборку при помощи команды cmake --build . (под Linux/MacOS/cygwin/mingw также сработает просто make). Это нужно делать каждый раз для пересборки проекта.
  4. Проверьте, что собрались и запускаются исполняемые файлы nsuoop-cpp-template(.exe) и test(.exe). Под Windows они могут лежать в папке Debug.

Можно также воспользоваться CMake GUI.

Visual Studio поддерживает CMake, поэтому можно просто открыть папку с проектом в ней. В этом случае по умолчанию папкой для сборки будет out/build, а не build.

Как вносить изменения:

  1. При внесении изменений в существующие h/cpp-файлы для пересборки нужно снова сделать cmake --build . (или make). Если пользуетесь IDE, она будет делать это сама.
  2. При создании новых (или удалении старых) cpp-файлов необходимо соответствующим образом изменить CMakeLists.txt (см. комментарии в нём). После этого снова сделать cmake --build . (или make). Это не относится к h-файлам, так как они не порождают новые единицы трансляции. h-файлы можно создавать и удалять, не меняя CMakeLists.txt.

Даже если пользуетесь Visual Studio или другой IDE, CMakeLists.txt все равно должен находиться в актуальном состоянии, чтобы проект можно было собрать на любой системе без помощи IDE.