Использование vcpkg и Conan для зависимостей
Подключайте внешние библиотеки с помощью vcpkg и Conan и интегрируйте их с CMake.
«Использование 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.cmakeFetchContent: встроенная альтернатива 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 — локальная установка не требуется.
Все уроки этого курса
- Структура проекта CMake и CMakeLists.txt
- Цели, связывание и видимость: PUBLIC, PRIVATE
- Использование vcpkg и Conan для зависимостей
- Генерация файлов IDE и кроссплатформенная сборка