Как настроить среду CLion для разработки на C++ [1.5]
В этом уроке вы научитесь настраивать среду CLion для разработки на C++, разберёте каждую строку файла сборки CMakeLists.txt, напишете и запустите первую программу. В конце -- практические задания и чек-лист самопроверки.
Главная мысль: CLion -- IDE от JetBrains со встроенной поддержкой CMake, C/C++ и отладчика. Достаточно открыть папку с CMakeLists.txt -- и проект сразу готов к сборке и запуску.
Содержание
- 1. Цели урока
- 2. Что такое CLion и чем он отличается от VS Code
- 3. Установка и первоначальная настройка CLion
- 4. CMakeLists.txt -- разбор каждой строки
- 5. Создание проекта и исходного кода
- 6. Сборка, запуск, отладка и Git
- 7. Практика: типовые задачи (с решениями)
- 8. Чек-лист самопроверки знаний (обязательный)
1. Цели урока
- Установить и настроить CLion для разработки на C++.
- Понимать назначение каждой строки в
CMakeLists.txt. - Создать, скомпилировать и запустить консольную программу на C++.
- Научиться использовать отладчик и встроенный Git-клиент CLion.
- Понимать разницу между CLion и VS Code при работе с CMake-проектами.
2. Что такое CLion и чем он отличается от VS Code
CLion -- кроссплатформенная IDE (Integrated Development Environment) от компании JetBrains, специально созданная для разработки на C и C++. Она включает редактор кода, систему сборки на базе CMake, встроенный отладчик, систему контроля версий и рефакторинг.
VS Code -- универсальный текстовый редактор, который становится IDE только после установки расширений. Для работы с C++ в VS Code вам нужно поставить минимум 4-5 расширений, а также вручную создавать конфигурационные файлы (tasks.json, launch.json).
Сравнение CLion и VS Code
| Критерий | VS Code | CLion |
|---|---|---|
| Тип | Редактор + расширения | Полноценная IDE |
| CMake | Нужно расширение «CMake Tools» | Встроен |
| Поддержка C/C++ | Нужно расширение «C/C++» от Microsoft | Встроена |
| Отладчик | Нужна ручная настройка launch.json |
Работает «из коробки» |
| Markdown | Нужно расширение | Встроен |
| Git | Базовый встроен, расширения расширяют | Встроен с полным UI |
| PlatformIO | Расширение | Плагин (опционально) |
| Стоимость | Бесплатный | Платный (есть бесплатная студ. лицензия) |
3. Установка и первоначальная настройка CLion
Загрузка и установка
- Перейдите на сайт jetbrains.com/clion.
- Нажмите Download и выберите вашу ОС (Windows / macOS / Linux).
- Установите программу, следуя инструкциям мастера.
- При первом запуске активируйте лицензию:
- 30-дневная триал-версия -- для всех;
- бесплатная лицензия -- для студентов и преподавателей (подать заявку).
cmake --version.Настройка Toolchain (компилятора)
При первом запуске CLion автоматически ищет компилятор. Если он не найден -- настройте вручную: Settings → Build, Execution, Deployment → Toolchains.
| ОС | Рекомендуемый тулчейн | Как установить |
|---|---|---|
| Windows | MinGW-w64 / MSVC / WSL | MinGW: mingw-w64.org MSVC: установите Visual Studio Build Tools |
| Linux | GCC | sudo apt install build-essential cmake |
| macOS | Clang | xcode-select --install |
После добавления тулчейна CLion покажет зелёную галочку напротив каждого компонента (C Compiler, C++ Compiler, Debugger, CMake).
Типичные ошибки при установке
Ошибка 1: «CMake -- not found» при открытии проекта
Причина: CLion не нашёл ни встроенный, ни системный CMake.
Решение: Перейдите в Settings → Build, Execution, Deployment → Toolchains и вручную укажите путь к CMake или выберите «Bundled».
Ошибка 2: «No C++ compiler found»
Причина: Компилятор не установлен или не виден в системном PATH.
Решение (Windows): Установите MinGW-w64 и добавьте путь к папке bin в переменную окружения PATH. Перезапустите CLion.
# Проверка из терминала
g++ --version
4. CMakeLists.txt -- разбор каждой строки
Что такое CMake и зачем нужен CMakeLists.txt
CMake -- это кроссплатформенная система автоматизации сборки. Она не компилирует код сама, а генерирует инструкции для компилятора (Makefile, проект Visual Studio, Ninja-файлы и т.д.).
Файл CMakeLists.txt -- это «рецепт» сборки вашего проекта. CLion читает именно его, чтобы понять: какие файлы компилировать, какой стандарт C++ использовать и как называется итоговый исполняемый файл.
Построчный разбор файла
Вот минимальный CMakeLists.txt для нашего проекта:
cmake_minimum_required(VERSION 3.26)
project(fibonacci_project)
set(CMAKE_CXX_STANDARD 17)
add_executable(fibonacci main.cpp)
Разберём каждую строку:
Строка 1: cmake_minimum_required(VERSION 3.26)
Назначение: задаёт минимальную версию CMake, необходимую для сборки проекта.
Зачем: разные версии CMake поддерживают разные команды и возможности. Если у пользователя CMake старше указанной версии, он получит понятную ошибку вместо загадочных сбоев.
Как выбрать версию: укажите версию, которая установлена у вас. Узнать её можно командой:
cmake --version
# Пример вывода: cmake version 3.26.4
Строка 2: project(fibonacci_project)
Назначение: объявляет имя проекта.
Что делает «под капотом»:
- Создаёт переменные
PROJECT_NAME,PROJECT_SOURCE_DIR,PROJECT_BINARY_DIR. - Имя проекта будет отображаться в CLion в заголовке окна.
Расширенная форма (опционально):
# Можно указать версию и языки проекта
project(fibonacci_project VERSION 1.0 LANGUAGES CXX)
_ и -.Строка 3: set(CMAKE_CXX_STANDARD 17)
Назначение: задаёт стандарт языка C++, который будет использоваться при компиляции.
Популярные значения:
| Значение | Стандарт | Год принятия |
|---|---|---|
11 |
C++11 | 2011 |
14 |
C++14 | 2014 |
17 |
C++17 | 2017 |
20 |
C++20 | 2020 |
23 |
C++23 | 2023 |
Что происходит при компиляции: CMake добавляет флаг -std=c++17 (для GCC/Clang) или /std:c++17 (для MSVC).
C++17 -- оптимальный выбор. Он поддерживается всеми современными компиляторами и содержит удобные возможности (std::optional, if constexpr, structured bindings и др.).Строка 4: add_executable(fibonacci main.cpp)
Назначение: создаёт цель сборки (target) -- исполняемый файл с именем fibonacci, скомпилированный из файла main.cpp.
Синтаксис:
add_executable(<имя_файла> <файл1.cpp> [файл2.cpp ...])
Если файлов несколько:
# Проект из нескольких файлов
add_executable(fibonacci
main.cpp
utils.cpp
math_helpers.cpp
)
Результат: после сборки в папке cmake-build-debug/ появится файл fibonacci (Linux/macOS) или fibonacci.exe (Windows).
Итоговая схема: как CLion использует CMakeLists.txt
CMakeLists.txt CLion (CMake) Kompiliator
+--------------+ +------------------+ +--------------+
| project(...) | -> | Generiruet | -> | g++ / clang++|
| set(CXX_STD) | | build-instrukcii | | / cl.exe |
| add_exec(...)| | (Makefile/Ninja) | | |
+--------------+ +------------------+ +------+-------+
|
v
fibonacci(.exe)
Полезные команды CMake
Вывод сообщения при конфигурации
message(STATUS "Kompiliator: ${CMAKE_CXX_COMPILER}")
message(STATUS "Standart: C++${CMAKE_CXX_STANDARD}")
Добавление флагов компиляции
# Vkliuchit preduprezhdeniia
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
Типичные ошибки в CMakeLists.txt
Ошибка 1: неправильное имя файла
Файл должен называться строго CMakeLists.txt (с точностью до регистра!). Имя cmakelists.txt или CMakeList.txt не будет распознано.
Ошибка 2: файл main.cpp не найден
# Oshibka: fail lezhit v src/, a v CMake ukazan bez puti
add_executable(fibonacci main.cpp)
# Pravilno:
add_executable(fibonacci src/main.cpp)
Пути в add_executable указываются относительно расположения CMakeLists.txt.
Ошибка 3: пропущена команда project()
# Oshibka: net project()
cmake_minimum_required(VERSION 3.26)
set(CMAKE_CXX_STANDARD 17)
add_executable(fibonacci main.cpp)
# CMake vydast preduprezhdenie i podstavit imia po umolchaniiu
Всегда указывайте project() -- это хорошая практика.
5. Создание проекта и исходного кода
Создание нового проекта
- Откройте CLion.
- Выберите File → New Project.
- Укажите тип: C++ Executable.
- Укажите стандарт языка: C++17.
- Задайте путь к папке проекта (например,
~/projects/fibonacci_project). - Нажмите Create.
CLion автоматически создаст:
fibonacci_project/
CMakeLists.txt <-- skript sborki
main.cpp <-- iskhodnyi kod
.idea/ <-- nastroiki CLion (ne kommitit v Git)
cmake-build-debug/ <-- papka sborki (sozdaiotsia pri pervoi kompilyacii)
Открытие существующего проекта (перенос из VS Code)
Если у вас уже есть папка с CMakeLists.txt и main.cpp (например, после работы в VS Code):
- File → Open
- Укажите папку, в которой лежит
CMakeLists.txt. - CLion спросит «Open as Project?» -- нажмите OK.
- CMake автоматически сконфигурируется. Результат виден во вкладке CMake (внизу).
.vscode/, tasks.json, launch.json из VS Code больше не нужны. CLion их игнорирует. Можете удалить их или оставить -- они не помешают.Программа: первые 5 чисел Фибоначчи
Замените содержимое main.cpp на:
#include <iostream>
int main() {
int n = 5; // kolichestvo chisel
int a = 0; // pervoe chislo Fibonachchi
int b = 1; // vtoroe chislo Fibonachchi
std::cout << "Pervye " << n << " chisel Fibonachchi:" << std::endl;
for (int i = 0; i < n; ++i) {
std::cout << a << " ";
int temp = a + b; // vychisliaem sleduyushchee chislo
a = b; // sdvigaem a vperiod
b = temp; // sdvigaem b vperiod
}
std::cout << std::endl;
return 0;
}
Ожидаемый вывод:
Pervye 5 chisel Fibonachchi:
0 1 1 2 3
Как работает алгоритм:
Итерация i | a (выводим) | b | temp = a + b |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 2 |
| 2 | 1 | 2 | 3 |
| 3 | 2 | 3 | 5 |
| 4 | 3 | 5 | 8 |
Типичные ошибки в коде
Ошибка 1: забыли #include <iostream>
// #include <iostream> <-- zabyli podkliuchit
int main() {
std::cout << "Hello"; // Oshibka kompilyacii: 'cout' is not a member of 'std'
return 0;
}
Решение: всегда подключайте заголовочный файл для используемых функций.
Ошибка 2: путаница с << и >>
std::cout >> "Hello"; // Oshibka! >> -- eto operator vvoda (dlia cin)
std::cout << "Hello"; // Pravilno: << -- operator vyvoda
cout << = вывод (стрелки «от программы к экрану»), cin >> = ввод (стрелки «от клавиатуры к переменной»).6. Сборка, запуск, отладка и Git
Сборка и запуск
В CLion сборка и запуск выполняются одним действием:
| Действие | Горячая клавиша | Кнопка |
|---|---|---|
| Только собрать (Build) | Ctrl + F9 | Build → Build Project |
| Собрать и запустить (Run) | Shift + F10 | Зелёная кнопка Play на панели |
| Отладка (Debug) | Shift + F9 | Кнопка Debug на панели |
При первом запуске CLion автоматически:
- создаст папку
cmake-build-debug/; - запустит CMake для конфигурации;
- скомпилирует программу;
- покажет вывод во встроенном терминале (вкладка Run внизу).
Отладка (Debug)
Отладчик в CLion работает «из коробки». Для использования:
- Поставьте точку останова (breakpoint) -- кликните на серую полосу слева от нужной строки (появится красный кружок).
- Нажмите Shift + F9 (или кнопку Debug).
- Программа остановится на отмеченной строке.
- Используйте панель отладки:
- Step Over (F8) -- выполнить текущую строку;
- Step Into (F7) -- войти внутрь вызова функции;
- Resume (F9) -- продолжить до следующего breakpoint;
- Variables -- панель с текущими значениями переменных.
launch.json с путями к отладчику (gdb/lldb). В CLion всё настроено автоматически.Подключение Git
- Убедитесь, что Git установлен:
git --version. - В CLion: VCS → Enable Version Control Integration → Git.
- Создайте файл
.gitignoreв корне проекта:
# Nastroiki CLion (individualny dlia kazhdogo razrabotchika)
.idea/
# Papka sborki (generiruetsia avtomaticheski)
cmake-build-*/
# Skompilyrovannye faily
*.exe
*.out
*.o
- Сделайте первый коммит: Ctrl + K, напишите сообщение, нажмите Commit.
- Опубликуйте в удалённый репозиторий: VCS → Git → Push (Ctrl + Shift + K).
Типичные ошибки при сборке
Ошибка 1: «Process finished with exit code -1073741515»
Причина (Windows): при запуске программы не находятся DLL-библиотеки MinGW.
Решение: добавьте путь к mingw/bin в системную переменную PATH, либо в настройках Run Configuration укажите переменную окружения.
Ошибка 2: при коммите CLion добавил папку .idea/
Решение: создайте .gitignore до первого коммита. Если уже закоммитили:
git rm -r --cached .idea/
git commit -m "Remove .idea from tracking"
7. Практика: типовые задачи (с решениями)
Задачи на CMakeLists.txt
Задача 1: Написать CMakeLists.txt с нуля
Создайте CMakeLists.txt для проекта «hello» с файлом hello.cpp, стандарт C++20, минимальная версия CMake -- 3.20.
cmake_minimum_required(VERSION 3.20)
project(hello)
set(CMAKE_CXX_STANDARD 20)
add_executable(hello hello.cpp)
Задача 2: Проект из нескольких файлов
У вас есть файлы: main.cpp, math_utils.cpp, math_utils.h. Напишите CMakeLists.txt.
cmake_minimum_required(VERSION 3.26)
project(multi_file_project)
set(CMAKE_CXX_STANDARD 17)
# Zagolovochnye faily (.h) ne nuzhno ukazyvat v add_executable,
# no mozhno -- dlia udobstva navigacii v IDE
add_executable(multi_file
main.cpp
math_utils.cpp
)
Задача 3: Найти ошибку в CMakeLists.txt
Что не так с этим файлом?
cmake_minimum_required(VERSION 3.26)
set(CMAKE_CXX_STANDARD 17)
add_executable(app main.cpp)
Ответ: отсутствует команда project(). CMake выдаст предупреждение. Добавьте project(app) после первой строки.
Задачи на C++
Задача 4: Вывести N чисел Фибоначчи (ввод с клавиатуры)
Модифицируйте программу: пусть пользователь сам вводит количество чисел.
#include <iostream>
int main() {
int n;
std::cout << "Skolko chisel Fibonachchi vyvesti? ";
std::cin >> n;
int a = 0, b = 1;
for (int i = 0; i < n; ++i) {
std::cout << a << " ";
int temp = a + b;
a = b;
b = temp;
}
std::cout << std::endl;
return 0;
}
Задача 5: Фибоначчи через рекурсию
Реализуйте функцию fib(n), возвращающую n-е число Фибоначчи, и выведите первые 5.
#include <iostream>
int fib(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
return fib(n - 1) + fib(n - 2);
}
int main() {
std::cout << "Pervye 5 chisel Fibonachchi:" << std::endl;
for (int i = 0; i < 5; ++i) {
std::cout << fib(i) << " ";
}
std::cout << std::endl;
return 0;
}
// Vyvod: 0 1 1 2 3
n (экспоненциальная сложность). Для учебных целей подходит, для реальных -- нет.Задача 6: Соответствие пунктов задания VS Code → CLion
Заполните таблицу: что из исходного задания (VS Code) соответствует какому действию в CLion.
| # | Исходное (VS Code) | В CLion |
|---|---|---|
| 1 | Установить VS Code | Установить CLion |
| 2 | Установить CMake | Уже встроен |
| 3 | Установить инструменты C/C++ | Уже встроены |
| 4 | Установить инструменты CMake | Уже встроены |
| 5 | Установить PlatformIO | Плагин (Settings → Plugins), если нужен |
| 6 | Установить Markdown | Уже встроен |
| 7 | Создать директорию проекта | File → New Project |
| 8 | Создать CMakeLists.txt | Создаётся автоматически при New Project |
| 9 | Создать main.cpp | Создаётся автоматически / редактируем |
| 10 | Скомпилировать | Shift + F10 |
| 11 | Загрузить в Git | VCS → Enable Version Control → Git |
8. Чек-лист самопроверки знаний
Отметьте пункты, которые вы действительно понимаете и можете применить без подсказок.
| ✓ | Навык | Проверка |
|---|---|---|
| Установка CLion | Могу скачать, установить CLion и активировать лицензию | |
| Настройка Toolchain | Могу проверить/настроить компилятор в Settings → Toolchains | |
| Создание проекта | Могу создать новый C++ проект через File → New Project | |
| Открытие существующего проекта | Могу открыть папку с CMakeLists.txt и CLion распознает её как проект | |
cmake_minimum_required |
Могу объяснить, зачем задаётся минимальная версия CMake | |
project() |
Могу объяснить назначение и указать имя проекта | |
set(CMAKE_CXX_STANDARD) |
Могу выбрать нужный стандарт C++ и объяснить, что делает эта строка | |
add_executable() |
Могу указать имя цели и список исходных файлов | |
| Сборка и запуск | Могу скомпилировать и запустить программу клавишей Shift+F10 | |
| Отладка | Могу поставить breakpoint и пройти код пошагово (F7/F8) | |
| Git в CLion | Могу инициализировать репозиторий, создать .gitignore и сделать коммит | |
| Числа Фибоначчи | Могу написать программу, вычисляющую N чисел Фибоначчи (цикл или рекурсия) |