C++ Academy · Урок

Использование vcpkg и Conan для зависимостей

Подключайте внешние библиотеки с помощью vcpkg и Conan и интегрируйте их с CMake.

Урок 3 из 414 шагов

«Использование vcpkg и Conan для зависимостей» — бесплатный урок C++ Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Зачем нужен менеджер пакетов?

Ручная загрузка и сборка зависимостей для C++ требует много усилий. Менеджеры пакетов автоматизируют получение, сборку и настройку сторонних библиотек.

Два основных варианта

Два ведущих менеджера пакетов C++:

  • vcpkg — поддерживается Microsoft, работает только с исходным кодом и интегрируется с CMake
  • Conan — проект с открытым исходным кодом, поддерживает двоичные пакеты и предоставляет больше гибкости

Настройка vcpkg

Клонируйте репозиторий vcpkg и выполните начальную настройку. Укажите файл цепочки инструментов в вызове CMake.

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && ./bootstrap-vcpkg.sh
./vcpkg install fmt spdlog

Связывание с vcpkg в CMake

Передайте файл цепочки инструментов при настройке CMake. После этого find_package работает как обычно.

cmake -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake

Использование vcpkg.json (режим манифеста)

Объявляйте зависимости в файле vcpkg.json. vcpkg устанавливает их отдельно для каждого проекта.

{
  "name": "my-app",
  "version-string": "0.1.0",
  "dependencies": ["fmt", "spdlog", "nlohmann-json"]
}

Настройка Conan

Установите Conan с помощью pip; создайте conanfile.txt или conanfile.py.

pip install conan
conan profile detect
conan install . --build=missing

Пример conanfile.txt

Перечислите требования, генераторы и параметры.

[requires]
fmt/10.1.1
spdlog/1.12.0

[generators]
CMakeDeps
CMakeToolchain

Интеграция Conan с CMake

Conan создаёт файлы CMake при выполнении install. Используйте их через файл цепочки инструментов или подключив созданные файлы CMake.

cmake -B build -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake

FetchContent: встроенная альтернатива CMake

Для простых случаев в CMake предусмотрен встроенный механизм FetchContent, который загружает и добавляет зависимости на этапе настройки.

include(FetchContent)
FetchContent_Declare(fmt
    GIT_REPOSITORY https://github.com/fmtlib/fmt.git
    GIT_TAG 10.1.1
)
FetchContent_MakeAvailable(fmt)
target_link_libraries(myapp PRIVATE fmt::fmt)

Выбор инструмента

Краткое руководство:

  • Небольшие проекты → FetchContent
  • Крупные проекты с простыми зависимостями → vcpkg
  • Сложные сборки с кэшем двоичных пакетов → Conan

Воспроизводимые сборки

Фиксируйте конкретные версии в манифесте. Файлы блокировки (conan.lock) сохраняют точные разрешённые версии для воспроизводимости.

Кэширование двоичных пакетов

И Conan, и vcpkg поддерживают кэширование двоичных пакетов — сборки в системе непрерывной интеграции становятся на порядки быстрее. Настройте общий кэш для команды.

Быстрая проверка

Какой механизм CMake загружает и собирает зависимость на этапе настройки без внешнего инструмента?

Итоги

vcpkg и Conan автоматизируют управление зависимостями C++. FetchContent в CMake — облегчённая альтернатива. Фиксируйте версии, кэшируйте двоичные пакеты и используйте find_package в CMake для подключения установленных библиотек.

Можно начать бесплатно

Изучай C++ с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
51
Уроки
203

Часто задаваемые вопросы

Урок «Использование vcpkg и Conan для зависимостей» бесплатный?

Да — полный текст урока «Использование vcpkg и Conan для зависимостей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Использование vcpkg и Conan для зависимостей»?

Подключайте внешние библиотеки с помощью vcpkg и Conan и интегрируйте их с CMake. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Использование vcpkg и Conan для зависимостей»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Структура проекта CMake и CMakeLists.txt
  2. Цели, связывание и видимость: PUBLIC, PRIVATE
  3. Использование vcpkg и Conan для зависимостей
  4. Генерация файлов IDE и кроссплатформенная сборка
← Назад к C++ Academy