Как открыть проект cmake в Visual Studio

Обновлено: 20.11.2024

Впервые написано 11 сентября 2020 г.
Последнее обновление 02 января 2021 г.

В этой и нескольких других статьях я расскажу о разработке очень простой библиотеки и приложения на C++ с использованием CMake и Visual Studio Code. Я также буду использовать git и Google Test и портировать проект с Windows на Linux. Большая часть информации применима практически к любой IDE или вообще к любой IDE.

Зачем использовать CMake?

CMake — это мощная и надежная система сборки. Вы указываете, что вы хотите сделать, а не как это сделать. Затем CMake берет эту информацию и создает файлы, необходимые для сборки системы. Например, CMake может создавать файлы решений (.sln) и проектов (.vcxproj), которые Visual Studio и Visual Studio Code используют в Windows. Подобные возможности доступны для любой другой популярной IDE. Он даже может создавать make-файлы, если вы хотите делать все из командной строки. Поскольку его можно вызывать из командной строки, он хорошо интегрируется с системами непрерывной интеграции/непрерывной сборки.

Вы можете указать инструменты сборки, которые хотите использовать; например, вы можете использовать MSVC или LLVM в Windows и gnu или LLVM в Unix-подобных системах, включая Linux, OSX и MSYS или MinGW. Помимо указания используемых инструментов, никаких других изменений в файлах спецификаций CMake не требуется. Вы увидите это, когда я перенесу свой проект из Windows с помощью инструментов сборки Visual Studio в Linux с помощью инструментов сборки gnu.

С помощью CMake вы можете загружать, создавать и использовать большое количество инструментов. Я покажу один пример этого, когда буду использовать Google Test в этом проекте. Можно использовать практически любой инструмент, который можно загрузить из Интернета и который предоставляет файлы CMake для сборки.

Установка необходимых инструментов

Я начну проект в Windows, используя VS Code и Visual Studio Build Tools, но при желании вы можете начать с другой IDE или даже с другой операционной системой. В следующей статье я расскажу об использовании инструментов gnu в Linux (Ubuntu).

Установка кода и расширений Visual Studio

В Windows последняя версия Visual Studio Code доступна на странице загрузки. Выберите подходящую версию; нажмите кнопку Windows для версии x64 или одну из ссылок ARM для ARM, если это применимо к вам. Загрузка начнется. По завершении запустите загруженный файл.

Далее нам понадобятся два расширения VSCode. Запустите VS Code и откройте панель расширений (выберите View → Extensions в главном меню). В поле поиска введите C++. Отображается ряд расширений C и C++. Вам нужен тот, который называется C++. Убедитесь, что это от Microsoft. Это расширение предоставляет возможности Intellisense, отладки и просмотра. Нажмите кнопку «Установить», чтобы установить его.

Второе расширение — CMake Tools. Найдите и установите его.

Установка инструментов сборки Visual Studio

Нам нужны инструменты сборки, предоставляемые Visual Studio. Не волнуйтесь, мы устанавливаем не Visual Studio, а только инструменты сборки.

На странице загрузок Visual Studio перейдите в раздел Все загрузки. Когда я пишу это, текущая версия Visual Studio — 2019, поэтому я буду ссылаться на нее в этом разделе. Если доступна более поздняя версия, используйте ее. Выберите Инструменты для Visual Studio 2019. Нажмите кнопку Загрузить для инструментов сборки для Visual Studio 2019. Загрузите и сохраните файл. Когда загрузка завершится, откройте файл. Это запустит установщик Visual Studio. Опять же, не волнуйтесь, мы устанавливаем не Visual Studio, а только инструменты сборки. Когда откроется окно установщика, выберите только инструменты сборки. Через некоторое время (несколько минут) установка завершится. Закройте программу установки.

Откройте меню "Пуск" Windows и запустите командную строку разработчика для VS 2019; не открывайте стандартную командную строку или Powershell. В командной строке введите:

Должно отображаться следующее, хотя номер версии может отличаться:

Если в сообщении говорится, что не удается найти CMake, значит инструменты сборки установлены неправильно.

Вы почти всегда будете запускать VS Code из командной строки командной строки разработчика, поэтому вам, вероятно, потребуется добавить его в раздел "Производительность" меню "Пуск".

Установка Git

Нам понадобится git. Если вы занимались какой-либо разработкой, возможно, она у вас уже установлена. Если нет, Git для Windows доступен здесь.

Простая программа на C++ с библиотекой

Мы начнем с создания простой программы на C++ с простой библиотекой. Вы можете выполнить аналогичные шаги с небольшими изменениями, если вы работаете в Linux или любой другой Unix-подобной системе. Для поддержки программы мы создадим структуру каталогов и запустим VS Code следующим образом:

Откройте командную строку разработчика. Введите:

В списке Explorer в VS Code выберите каталог hello/include и создайте новый файл с именем hello.h.Поместите следующий код в этот файл и сохраните его:

Снова в списке Explorer выберите hello/src и создайте новый файл с именем hello.cpp. Поместите следующий код в этот файл и сохраните его:

Это весь код, который нам нужен для нашей библиотеки. Теперь создайте программу для использования библиотеки. В списке проводника выберите каталог приложений и создайте новый файл с именем main.cpp. Поместите следующий код в этот файл и сохраните его:

Для сборки библиотеки и программы мы будем использовать CMake. В Интернете есть много примеров CMake, многие из которых устарели или просто плохи. Для этой программы и библиотеки я использую Modern CMake Генри Шрайнера и других авторов.

В списке Explorer выберите VSCODE-CMAKE-HELLO в VS Code и создайте новый файл. Назовите его CMakeLists.txt. Введите следующее и сохраните файл:

В списке Explorer выберите приложения и создайте новый файл. Назовите его CMakeLists.txt. Введите следующее и сохраните файл:

Создайте файл CMakeLists.txt в каталоге hello и поместите в него следующий код:

Использование CMake с кодом Visual Studio

Посмотрите на строку состояния в окне VS Code. Если это похоже на это:

затем завершите и перезапустите VS Code. Строка состояния теперь должна выглядеть так:

Мастер* слева направо означает, что вы редактируете ветку git master и что изменения были внесены. Символы и нули указывают на то, что в настоящее время в рабочей области нет ошибок. Далее находится кнопка, которая запустит CMake ( CMake: [Debug] ). No Kit Selected указывает, что инструменты сборки еще не выбраны; мы доберемся до них через мгновение. За ней следует кнопка «Сборка», цель по умолчанию, кнопка «Ошибка», которая запускает приложение в режиме отладки, и кнопка, которая запускает приложение без запуска отладчика. Остальная часть строки состояния содержит другую информацию, которая нас сейчас не интересует.

Сначала нужно запустить CMake, чтобы создать файлы сборки. Нажмите кнопку CMake: [Отладка]. Когда вы делаете это в первый раз, под главным меню отображается список наборов инструментов для сборки. Выберите Unspecified или Visual Studio Build Tools 2019 Release — amd64. Текст No Kit Selected в строке состояния изменится на [Visual Studio Build Tools 2019 Release — amd64] и отобразится список конфигураций CMake: Debug , Release , MinSizeRel и RelWithDebInfo .

Выберите Отладка . Это запустит CMake и создаст файл решения Visual Studio ( .sln ) и файлы проекта Visual Studio ( .vcxproj ), если ошибок нет. Если есть ошибки, значит, что-то не так с файлами CMakeLists.txt или исходными файлами C++.

Если вы выберете любое другое действие CMake, исполняемый файл, библиотека и файлы, связанные с отладкой, будут помещены в другие подкаталоги. Например, если вы создаете выпускные версии, они будут помещены в build/Release .

При первом запуске отладки, нажав кнопку «Ошибка» или выбрав «Выполнить» → «Начать отладку», сразу под главным меню отобразится список сред сборки. Выберите C++ (Windows) .

Чтобы выполнить очистку и перестроение, все, что нам нужно сделать, это удалить каталог сборки и все его содержимое, а затем запустить CMake и выполнить сборку.

Отладка

После отладочной сборки вы можете отладить файл main.exe, нажав кнопку ошибки в строке состояния. Кроме того, вы можете выбрать «Выполнить» → «Начать отладку» в главном меню. В последнем случае, когда вы делаете это в первый раз, отображается список сред отладки. Выберите С++ (Windows). Если активный файл в VS Code является исходным файлом C++, отображается список конфигураций. Вы можете выбрать либо cl.exe — сборка и отладка активного файла, либо конфигурация по умолчанию. Если активен файл другого типа, например CMakeLists.txt, список конфигурации не отображается.

В любом случае файл с именем launch.json добавляется в каталог .vscode. Откройте этот файл и измените программу на $/build/apps/Debug/main.exe

Теперь вы можете запустить отладку либо с помощью кнопки ошибки, либо из пункта меню.

Обзор и дальнейшие действия

В этой статье обсуждалось, как создать проект C++, содержащий программу с именем main и библиотеку с именем hello, в Visual Studio Code с помощью CMake. Также обсуждается отладка программы.

Еще многое предстоит сделать, но об этом мы поговорим в следующих статьях:

CMake – это кроссплатформенный инструмент с открытым исходным кодом, который использует файлы конфигурации, не зависящие от компилятора и платформы, для создания собственных файлов инструментов сборки, специфичных для вашего компилятора и платформы.

Расширение CMake Tools интегрирует Visual Studio Code и CMake, упрощая настройку, сборку и отладку проекта C++.

В этом руководстве вы будете использовать расширение CMake Tools для Visual Studio Code для настройки, сборки и отладки простого проекта C++ CMake в Linux. Помимо установки CMake, вашего компилятора, отладчика и инструментов сборки, действия, описанные в этом руководстве, в целом применимы к тому, как вы будете использовать CMake на других платформах, таких как Windows.

Если у вас возникли проблемы, сообщите о проблеме для этого руководства в репозитории документации VS Code. Кроме того, дополнительные сведения о средствах CMake в целом см. в документации по средствам CMake для кода Visual Studio

Предпосылки

Чтобы выполнить это руководство в Ubuntu, установите следующее:

Расширение C++ для VS Code. Установите расширение C/C++, выполнив поиск «c++» в представлении «Расширения» ( ⇧⌘X (Windows, Linux Ctrl+Shift+X )).

Расширение CMake Tools для VS Code. Установите расширение CMake Tools, выполнив поиск «Инструменты CMake» в представлении «Расширения» ( ⇧⌘X (Windows, Linux Ctrl+Shift+X )).

Вам также потребуется установить CMake, компилятор, отладчик и инструменты сборки.

Убедитесь, что CMake установлен

Расширение VS Code CMake Tools выполняет свою работу с помощью CMake, установленного в вашей системе. Для достижения наилучших результатов используйте CMake версии 3.15 или более поздней.

Проверьте, не установлен ли CMake в вашей системе. Откройте окно терминала и введите следующую команду:

Чтобы установить CMake или получить более позднюю версию, если у вас нет по крайней мере версии 3.15, см. инструкции для вашей платформы в репозитории Kitware APT. Установите версию 3.15 или выше.

Убедитесь, что инструменты разработки установлены

Несмотря на то, что вы будете использовать VS Code для редактирования исходного кода, вы будете компилировать и отлаживать исходный код с помощью компилятора, отладчика и инструментов сборки (таких как make ), установленных в вашей системе.

В этом руководстве по Ubuntu мы будем использовать компилятор GCC, GDB для отладки и make для сборки проекта. Эти инструменты не установлены по умолчанию в Ubuntu, поэтому вам необходимо их установить. К счастью, это легко.

Проверьте, установлен ли GCC

Чтобы убедиться, что GCC уже установлен в вашей системе, откройте окно терминала и введите следующую команду:

Если GCC не установлен, выполните следующую команду из окна терминала, чтобы обновить списки пакетов Ubuntu. Устаревший дистрибутив Linux может помешать получению последних пакетов.

Затем установите компилятор GNU, make и отладчик GDB с помощью этой команды:

Создать проект CMake

Если у вас есть проект CMake, в корневом каталоге которого уже есть файл CMakeLists.txt, вы можете перейти к разделу Выбор комплекта для настройки существующего проекта.

В противном случае создайте папку для нового проекта. В окне терминала создайте пустую папку с именем cmakeQuickStart , перейдите в нее и откройте VS Code в этой папке, введя следующие команды:

Код . Команда открывает VS Code в текущей рабочей папке, которая становится вашей «рабочей областью».

Создание проекта CMake hello world

Расширение CMake Tools может создавать файлы для базового проекта CMake. Откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P )) и запустите команду CMake: Quick Start:

Введите название проекта. Это будет записано в CMakeLists.txt и несколько исходных файлов.

Затем выберите «Исполняемый» в качестве типа проекта, чтобы создать базовый исходный файл ( main.cpp ), который включает базовую функцию main().

Примечание. Если бы вы хотели создать базовый исходный файл и файл заголовка, вы бы вместо этого выбрали библиотеку. Но для этого урока Executable подойдет. Если вам будет предложено настроить IntelliSense для папки, выберите Разрешить.

При этом создается проект CMake hello world, содержащий main.cpp , CMakeLists.txt (который сообщает инструментам CMake, как создавать проект) и папку build для ваших файлов сборки:

Выберите комплект

Прежде чем вы сможете использовать расширение CMake Tools для создания проекта, вам необходимо настроить его, чтобы он знал о компиляторах в вашей системе. Сделайте это, просканировав «наборы».Комплект представляет собой цепочку инструментов, которая представляет собой компилятор, компоновщик и другие инструменты, используемые для создания вашего проекта. Чтобы найти комплекты:

Откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) и запустите CMake: выберите комплект. Расширение автоматически просканирует комплекты на вашем компьютере и создаст список компиляторов, найденных в вашей системе.

Выберите компилятор, который хотите использовать. Например, в зависимости от установленных компиляторов вы можете увидеть что-то вроде:

Настроить Hello World

Для настройки проекта CMake необходимо сделать две вещи: выбрать комплект (что вы только что сделали) и выбрать вариант.

Выбранный ранее комплект отображается в строке состояния. Например:

Чтобы изменить комплект, щелкните его в строке состояния или запустите CMake: еще раз выберите команду комплекта в палитре команд. Если вы не видите нужный компилятор, вы можете отредактировать файл cmake-tools-kits.json в своем проекте. Чтобы отредактировать файл, откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) и выполните команду CMake: Edit User-Local CMake Kits.

Выберите вариант

Вариант содержит инструкции по созданию проекта. По умолчанию расширение CMake Tools предоставляет четыре варианта, каждый из которых соответствует типу сборки по умолчанию: Debug , Release , MinRelSize и RelWithDebInfo . Эти параметры делают следующее:

Отладка: отключает оптимизацию и включает отладочную информацию. Релиз: включает оптимизацию, но без отладочной информации. MinRelSize : оптимизация по размеру. Нет отладочной информации. RelWithDebInfo : Оптимизирует скорость и включает информацию об отладке.

Чтобы выбрать вариант, откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P) ) и выполните команду CMake: Select Variant.

Выберите Отладка, чтобы включить отладочную информацию в вашу сборку.

Выбранный вариант появится в строке состояния рядом с активным комплектом.

CMake: настройка

Теперь, когда вы выбрали комплект и вариант, откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P )) и запустите команду CMake: Configure для настройки проекта. Это создает файлы сборки в папке сборки проекта с использованием выбранного комплекта и варианта.

Создать привет, мир

После настройки проекта вы готовы к сборке. Откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) и запустите команду CMake: Build или нажмите кнопку Build в строке состояния.

Вы можете выбрать, какие цели вы хотите построить, выбрав CMake: Установить цель сборки в палитре команд. По умолчанию CMake Tools создает все цели. Выбранная цель появится в строке состояния рядом с кнопкой "Создать".

Отладка привет, мир

Для запуска и отладки проекта откройте файл main.cpp и поставьте точку останова в строке std::cout. Затем откройте палитру команд ( ⇧⌘P (Windows, Linux Ctrl+Shift+P )) и запустите CMake: Debug. Отладчик остановится на строке std::cout:

Чтобы продолжить, нажмите F5.

Теперь вы использовали расширение VS Code CMake Tools, чтобы использовать CMake для создания и отладки приложения C++ в Ubuntu. Шаги одинаковы для других платформ; разница заключается в том, как вы устанавливаете CMake и компилятор/отладчик для выбранной вами платформы. Инструкции по настройке компиляторов/отладчиков для других платформ см. в следующем:

CMake легко создает решения Visual Studio. В этом посте команды CMake будут сопоставлены с интегрированной средой разработки Visual Studio с примером, который значительно облегчит изучение. Он в первую очередь предназначен для разработчиков C++, использующих Visual Studio. Большинство приведенных здесь ссылок основаны на Visual Studio 2010, но в равной степени применимы и к другим версиям. Продолжая предисловие CMake для разработчиков Visual Studio.

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

Помимо типичных промежуточных файлов, таких как .obj , Visual Studio создает гораздо больше временных файлов, таких как .sbr, .suo, .vcxproj.filters, .db и т. д. Их не нужно (и не следует) возвращать в исходный репозиторий. так как иногда они большие и зависят от пользователя.

Разработчик Visual Studio может рассматривать файл проекта ( .vcxproj ) и файл решения ( .sln ) как «источник», поскольку он включает добавление/удаление исходных файлов, изменение зависимостей библиотеки, установку зависимостей сборки и т. д. Однако с CMake, вы также можете считать его промежуточным файлом, так как CMake сгенерирует его и рекомендуется, чтобы он находился вне исходного каталога.

Чтобы очистить или сбросить среду сборки, просто удалите каталог сборки вне исходного кода.

В системе сборки CMake «правила» сборки или «настройки проекта» определяются в текстовых файлах с именем CMakeLists.txt .
Некоторые общие операции и настройки проектов Visual Studio и их сопоставление с CMake перечислены ниже в качестве обзора.

< td>Properties->Linker->General->Дополнительные каталоги библиотек
Visual Studio Команда CMake
Файл решения (.sln ) проект
Файл проекта (.vcproj) целевое имя в команде add_executable или add_library
исполняемый файл (.exe) add_executable
статическая библиотека (.lib) add_library< /td>
динамическая библиотека (.dll) add_library(SHARED)
Исходные папки source_group
Папки проекта set_property(ПАПКА ЦЕЛЕВОГО СВОЙСТВА)
Свойства-> Общие->Выходной каталог set_target_properties(PROPERTIES RUNTIME_OUTPUT_DIRECTORY)
Свойства->C/C++->Препроцессор->Определения препроцессора add_definitions
Свойства->C/C++->Общие->Дополнительные включаемые каталоги include_directories
link_d каталоги
Свойства->Компоновщик->Ввод->Дополнительные зависимости target_link_libraries

Учебник от CMake — это очень простой пример. Пожалуйста, обратитесь к нему, если вы не знакомы с основами. Здесь он был улучшен, чтобы показать определенные аспекты, обычно используемые в Windows.

Исходная структура

Выполнить CMake

Как было рекомендовано ранее, для сборки из исходного кода создайте каталог, в котором CMake будет создавать необходимые файлы проекта Visual Studio и множество файлов, специфичных для CMake.

Сделать каталог сборки текущим рабочим каталогом.

Запустите команду CMake и укажите, где найти первый (корневой) файл CMakeLists.txt . В этом случае ".." используется для обозначения одного каталога выше текущего рабочего каталога. Параметр -G указывает на создание файлов проекта Visual Studio 2010 Win64.

Обратите внимание, что можно указать другие генераторы Visual Studio (например, VS 2012, VS 2013, VS 2015). Используйте cmake --help, чтобы увидеть полный список.

Файл решения Visual Studio будет создан в каталоге _build.

Обозреватель решений Visual Studio

Откройте файл решения в Visual Studio.

Сборка и отладка

Создайте решение в Visual Studio. По умолчанию выходные двоичные файлы ( app.exe , math.dll ) из сборки создаются в своих собственных подкаталогах в каталоге _build. Но вы можете установить свойство RUNTIME_OUTPUT_DIRECTORY, чтобы указать выходной каталог в Visual Studio. Это гарантирует, что исполняемый файл может быть запущен из отладчика и найдет все зависимые библиотеки.

⚠ Обратите внимание, что проект ALL_BUILD по умолчанию является «Запускаемым проектом». Это никогда не относится к отладке. Поэтому щелкните правой кнопкой мыши исполняемый проект (в данном случае приложение) и выберите «Запуск проекта» в контекстном меню.
CMake 3.6.3 добавил свойство VS_STARTUP_PROJECT для указания запускаемого проекта.

⚠ Поскольку в этом примере используется аргумент командной строки, для его запуска/отладки из Visual Studio необходимо задать свойства исполняемого проекта ( app ).
Установите для свойств->Отладка->Аргументы команды значение 200

Установить и запустить

Установка — это концепция, пришедшая из Linux ( make install ) и не очень распространенная в среде разработки Windows. По сути, в процессе сборки создается множество артефактов, но для развертывания может потребоваться только их часть. Здесь в игру вступает установка. Проект INSTALL копирует двоичные файлы в указанный каталог установки. Поэтому создайте INSTALL.vcproj явно, поскольку он не создается как часть решения.

Теперь исполняемый файл можно запустить в командном окне из каталога установки.

Вызов CTest из каталога сборки запустит тесты. Кроме того, тесты можно запустить в среде Visual Studio, щелкнув правой кнопкой мыши «Сборка» в проекте RUN_TESTS, и отчет о выполнении теста будет отображаться в окне вывода.

Сведения о CMakeLists.txt

Комментарии в каждой строке содержат дополнительные сведения о каждой команде CMake.
Файл: CMake-VisualStudio-Example/CMakelist.txt

Чтобы добавить некоторые функции CMake в среду Visual Studio, он создает несколько файлов проекта, которые по большей части можно игнорировать. В любом случае ниже приводится краткое описание.

INSTALL Спецификация установки CMake. Он имитирует сборку Linux, поэтому его нужно собрать вручную после полной сборки.
RUN_TESTS Спецификация теста CMake. Этот проект позволит запускать тесты в Visual Studio, а отчет о выполнении тестов будет отображаться в окне вывода
ZERO_CHECK Используется, чтобы убедиться, что проект файлы обновлены по отношению к файлам CMakeLists.txt
ALL_BUILD Сборка всех проектов в соответствии с порядком зависимости

Visual Studio поддерживает несколько конфигураций в одном файле проекта и создает каталог для каждой конфигурации. CMake по умолчанию создает четыре конфигурации: Debug, Release, MinSizeRel и RelWithDebInfo.

Система сборки CMake лучше, чем проекты и решения Visual Studio. Он компактен и намного проще в обслуживании даже для проектов только для Windows. См. CMake для разработчиков Visual Studio по некоторым причинам.

Теперь Microsoft заявляет о прямой поддержке CMake в Visual Studio, но беглый взгляд на это больше похож на запутывание философии CMake, чтобы сделать вас зависимыми от Microsoft.

Надеюсь, документ окажется полезным. Не стесняйтесь комментировать, если вам нужны какие-либо разъяснения или дополнительная информация.

Разрабатываете приложения C или C++ с помощью CMake и ищете подходящую среду разработки? Я очень рекомендую Visual Studio Code для этой цели. С правильными расширениями Visual Studio Code предлагает отличную поддержку проектов CMake. В этой статье я покажу вам, как установить и настроить Visual Studio Code. Вплоть до того, что вы можете легко импортировать проекты CMake в Visual Studio Code и быстро приступить к кодированию, сборке и отладке своего приложения C/C++.

Фон

При разработке приложения на C или C++ я создаю код либо с помощью Makefile, либо автоматически генерирую среду сборки с помощью CMake. За последние годы я заметил, что больше тяготею к CMake, чем к Makefile. CMake просто предлагает так много преимуществ. Вот лишь некоторые из них:

  • Его синтаксис проще, чем у Makefile.
  • Не так разборчив, когда дело доходит до использования пробелов по сравнению с вкладками.
  • Автоматически определяет установленный компилятор.

На прошлой неделе мне нужно было написать базовую программу командной строки на C, и на этот раз я решил использовать CMake. Кроме того, я хотел использовать среду разработки, которая предлагает хорошую поддержку CMake. Я хотел, чтобы он автоматически обнаруживал файл CMakeLists.txt и подготавливал для меня среду сборки. Обычно я предпочитаю Eclipse с подключаемым модулем CDT. Но его поддержка CMake казалась ограниченной до такой степени, что я начал искать альтернативную среду разработки.

Попробовав несколько (Geany, Code::Blocks, CodeLite, NetBeans, KDevelop), я остановился на Visual Studio Code. Найдя и установив нужные расширения, я был поражен тем, насколько хорошо Visual Studio Code поддерживает CMake для разработки на C/C++. В этой статье я поделюсь с вами своими выводами. Я покажу вам, как легко импортировать проект CMake в Visual Studio Code. До такой степени, что вы можете кодировать, создавать, запускать и отлаживать свое приложение C/C++ в Visual Studio Code.

Что вам нужно

Поскольку в этом блоге рассматриваются темы Linux, я предполагаю, что вы используете настольный дистрибутив Linux. Выбор за вами. Для этой статьи я решил использовать Ubuntu Desktop 20.04, работающую на виртуальной машине VirtualBox.

Чтобы выполнить шаги, описанные в этом руководстве, вам также необходимо установить средства разработки C/C++ в вашей системе Linux. Вот инструкции по установке средств разработки C/C++ в популярных дистрибутивах Linux:

  • Debian/Ubuntu: sudo apt install git gcc g++ gdb make cmake
  • Fedora: sudo dnf install git gcc g++ gdb make cmake
  • openSUSE: sudo zypper install git gcc gcc-c++ gdb make cmake

Нам также потребуется установить Visual Studio Code в нашей системе Linux. В следующем разделе я расскажу об установке Visual Studio Code.

Установка кода Visual Studio в Linux

Для установки Visual Studio Code в Linux существует несколько вариантов. Я перечислю их в порядке моих личных предпочтений:

По моему опыту, запуск настольных приложений в изолированной среде, такой как Flatpak или Snap, работает нормально. Они просто запускаются немного медленнее, чем когда вы устанавливаете их из программного пакета, изначально поддерживаемого вашим дистрибутивом Linux (например, DEB или RPM). По этой причине я всегда предпочитаю пакет DEB для Ubuntu и Debian или пакет RPM для Fedora или openSUSE, а не Flatpak или Snap.

Как упоминалось в предыдущем разделе, для этой статьи я выбрал Ubuntu Desktop 20.04. Поэтому следующие инструкции по установке относятся к установке Visual Studio Code в виде пакета DEB.

В качестве первого шага откройте в веб-браузере страницу загрузки на веб-сайте Visual Studio Code. Затем щелкните ссылку для скачивания 64-разрядного пакета .deb:

На моем ПК загруженный файл отображается в моем каталоге Download как: ~/Downloads/code_1.58.2-1626302803_amd64.deb . Имя файла может отличаться для вас, если издатель тем временем выпустил более новую версию.

Чтобы установить загруженный пакет Visual Studio Code DEB в Ubuntu (или Debian), откройте терминал и выполните следующую команду:

Установите расширения C/C++ и CMake в Visual Studio Code

По умолчанию Visual Studio Code еще не поддерживает разработку проектов C/C++ или CMake. Мы можем исправить это, установив следующие два бесплатных расширения:

    : C/C++ IntelliSense, отладка и просмотр кода. : расширенная поддержка CMake в Visual Studio Code.

Чтобы установить эти расширения, запустите Visual Studio Code. Вы можете найти средство запуска приложений в меню приложений вашего рабочего стола. Затем откройте экран расширений, нажав Ctrl + Shift + x. Чтобы найти расширение, введите его имя в поле поиска и, когда оно будет найдено, нажмите кнопку Установить. Повторите эти шаги для расширений C/C++ и CMake Tools. После успешной установки это выглядит так:

Обратите внимание, что третье расширение (CMake от twxs) было автоматически установлено при установке расширения CMake Tools.

Загрузить пример проекта CMake

Поскольку код Visual Studio полностью подготовлен для разработки на C/C++ с помощью CMake, мы должны попробовать его. Для этой цели я подготовил простое приложение типа C Hello World, которое вы можете создать с помощью CMake. Вы можете найти его в учетной записи GitHub PragmaticLinux. Чтобы клонировать пример проекта CMake, откройте терминал и выполните команду:

Теперь вы можете найти этот пример проекта CMake в подкаталоге myapp внутри вашего домашнего каталога:

Импортируйте пример проекта CMake в Visual Studio Code

После клонирования примера проекта CMake и добавления поддержки C/C++ и CMake в Visual Studio Code давайте посмотрим, как это работает. Откройте Visual Studio Code и выберите ФайлОткрыть папку... в меню программы. Затем перейдите туда, где мы клонировали пример проекта CMake. По сути, это каталог, содержащий файл CMakeLists.txt, поэтому ~/myapp :

Вы можете увидеть диалоговое окно, в котором Visual Studio Code спросит вас, доверяете ли вы автору файлов в папке. Вы можете нажать кнопку Да, я доверяю авторам в диалоговом окне, чтобы избавиться от него.

После импорта проекта CMake в Visual Studio Code переведите взгляд на строку состояния внизу:

  1. CMake:[DEBUG]:Готово . Это показывает, что код Visual Studio действительно обнаружил, что наш проект является проектом CMake. По умолчанию он создаст отладочную версию нашего приложения. Это идеально во время разработки, и на этом мы можем остановиться. Если вы когда-нибудь захотите изменить тип сборки, вы можете просто щелкнуть этот текст в строке состояния.
  2. Комплект не выбран. Под комплектом подразумеваются только инструменты разработки C/C++, которые мы предпочитаем использовать. Например, GCC или CLANG. В вашей системе может быть установлено несколько инструментов разработки. Поэтому нам нужно сообщить расширению CMake Visual Studio Code, какое из них использовать.

На данном этапе нам осталось только сообщить Visual Studio Code, какой комплект мы предпочитаем использовать в сочетании с CMake. Чтобы выбрать комплект, щелкните текст No Kit Selected в строке состояния. Вверху появляется окно выбора, где вы можете выбрать инструменты разработки C/C++, обнаруженные Visual Studio Code в вашей системе. Мы установили GCC на более раннем этапе, поэтому выберите этот вариант:

Создайте, запустите и отладьте проект CMake в Visual Studio Code

Как вы видели в предыдущем разделе, для импорта проекта CMake нам нужно было сделать следующее:

  • Откройте папку, содержащую файл CMakeLists.txt.
  • Выберите комплект CMake для использования. GCC в нашем примере.

Вот и все! Теперь все готово для фактической разработки нашего приложения C/C++. Начнем с создания примера программы на C. Нажмите на текст Build в строке состояния или нажмите F7. В окне Вывод вы можете следить за ходом выполнения. Если вы присмотритесь, вы увидите, что сначала он автоматически использует CMake для настройки среды сборки:

После создания программы C мы можем запустить или отладить ее. Чтобы запустить программу, щелкните маленький значок воспроизведения в строке состояния или нажмите Shift + F5. Чтобы отладить программу, щелкните значок маленькой ошибки в строке состояния или нажмите Ctrl + F5. Вывод программы появится в окне Терминал:

Подведение итогов

Проекты Visual Studio Code и CMake C/C++ идут рука об руку благодаря расширениям C/C++ и CMake Tools . После установки все, что вам нужно сделать, чтобы импортировать проект CMake в Visual Studio Code:

  • Откройте папку, содержащую файл CMakeLists.txt.
  • Выберите инструменты разработки C/C++, которые хотите использовать. Это называется комплект CMake.

С этого момента вы можете сразу собирать ( F7 ), запускать ( Shift + F5 ) и отлаживать ( Ctrl + F5 ) вашу программу C/C++. Установленное расширение CMake автоматически определяет, что вы импортировали проект CMake в Visual Studio Code. В следующий раз, когда вы будете собирать программу C/C++, она автоматически вызовет для вас программу cmake, чтобы создать среду сборки.

Прагматик Линукс

Постоянный энтузиаст Linux, разработчик программного обеспечения с открытым исходным кодом и технический писатель.

Читайте также: