CMake с нуля: как собрать и запустить проект на C++

Соберите первый проект C++ с CMake: два файла, две команды и запуск в Windows, Linux или macOS. Разбираем, что делать, если CMake не видит проект или компилятор.

Содержание

Вы скачали проект на C++. В папке лежит исходный код, а вот кнопки «Запустить» нигде нет. Зато есть файл CMakeLists.txt. Это хорошая новость: автор уже записал, как собрать программу. Давайте сделаем такой проект сами — от двух файлов до работающего табло с очками.

Что делает CMake и что нужно установить

CMake читает описание проекта и готовит инструкции для сборки: какие исходники взять и как назвать программу. Компилятор выполняет другую работу — превращает код C++ в машинный код. Поэтому для примера нужны и CMake версии 3.16 или новее, и комплект для сборки: например, GCC с Make в Linux, инструменты командной строки Xcode в macOS или Visual Studio с компонентом «Разработка классических приложений на C++» в Windows.

4 ноября Kitware выпустила CMake 4.5.0-rc3. Буквы rc означают, что это кандидат на выпуск: его ещё тестируют. Для нашего примера он не нужен. Мы собрали проект на macOS с CMake 4.3.0 и Apple Clang 17.

Два файла для первого проекта

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

main.cpp
C++
#include <iostream>

int main() {
    const int first_round = 12;
    const int second_round = 30;
    std::cout << "Score: " << first_round + second_round << '\n';
}
CMakeLists.txt
TXT
cmake_minimum_required(VERSION 3.16)
project(scoreboard LANGUAGES CXX)
add_executable(score main.cpp)

Первая строка задаёт минимальную версию CMake. Вторая называет проект и выбирает язык C++. Третья говорит, что из main.cpp нужно собрать программу с именем score. Поэтому готовый файл будет называться по имени программы, а не по имени папки.

Как запустить проект с помощью cmake

Откройте терминал в папке, где лежат оба файла. Сначала попросим CMake прочитать описание проекта и подготовить папку сборки:

Терминал
Shell
cmake -S . -B build

После -S стоит точка: исходники ищем в текущей папке. После -B стоит build: сюда CMake положит служебные файлы. Папку он создаст сам. Увидели сообщение Build files have been written to? Первый шаг прошёл, но запускать пока нечего: готовы только инструкции.

Терминал
Shell
cmake --build build --config Debug

Теперь система сборки вызывает компилятор и собирает программу. Параметр --config Debug выбирает отладочный вариант там, где один проект поддерживает несколько конфигураций, например в Visual Studio.

Как пересобрать проект, если изменились исходники

В Linux или macOS при обычной сборке через Make или Ninja запустите программу из папки проекта:

Терминал · Linux и macOS
Shell
./build/score

В Windows при сборке через Visual Studio команда для PowerShell будет такой:

PowerShell · Windows
TXT
.\build\Debug\score.exe

Если в Windows вы используете обычный Ninja, программа лежит прямо в build, без подпапки Debug. В macOS с генератором Xcode, наоборот, ищите score внутри build/Debug.

При первом запуске табло покажет Score: 42. Теперь в main.cpp замените 30 на 35, сохраните файл, повторите только команду сборки и запустите программу ещё раз. Получилось Score: 47? Значит, вы запускаете свежую сборку. Если по-прежнему 42, проверьте, что сохранили исходник и сборка завершилась без ошибки.

Если CMake не видит проект

Сообщение does not appear to contain CMakeLists.txt обычно означает, что терминал открыт не в той папке. Найдите рядом main.cpp и CMakeLists.txt и запускайте первую команду оттуда. В Windows заодно проверьте расширение: редактор мог сохранить файл как CMakeLists.txt.txt.

Если CMake нашёл описание проекта, но сообщает No CMAKE_CXX_COMPILER could be found, дело уже в компиляторе. Проверьте, что установлен комплект разработки C++, а на Windows попробуйте терминал разработчика Visual Studio. Переписывать программу из-за этой ошибки не нужно: компилятор ещё даже не добрался до вашего кода.

Источники

  1. Kitware. CMake 4.5.0-rc3: выпуск для тестирования [Электронный ресурс]. — URL: https://www.kitware.com/cmake-4-5-0-rc3-is-ready-for-testing/ (дата обращения: 09.11.2026).
  2. CMake. Командная строка: настройка и сборка [Электронный ресурс]. — URL: https://cmake.org/cmake/help/latest/manual/cmake.1.html (дата обращения: 09.11.2026).
  3. CMake. Официальный практикум для начинающих [Электронный ресурс]. — URL: https://cmake.org/cmake/help/latest/guide/tutorial/index.html (дата обращения: 09.11.2026).
C++Компилятор