Russian Qt Forum

Qt => Уроки и статьи => Тема начата: Пантер от Май 15, 2020, 20:22



Название: Менеджеры пакетов для c++
Отправлено: Пантер от Май 15, 2020, 20:22
Может быть, кто-то до сих пор не знает о существовании пакетных менеджеров для с++. Я вот не знал до недавнего времени и спешу поделиться с вами.
Я знаю их 2: https://conan.io/ (https://conan.io/) и https://github.com/Microsoft/vcpkg (https://github.com/Microsoft/vcpkg)
Оба кроссплатформенные, оба имеют достаточно большую базу пакетов.
У меня лично с conan не сложилось, не смог осилить сборку библиотеки gRPC под x86 платформу в винде, с vcpkg все прошло удачно.
Основные отличия между ними, которые я заметил:
  • Conan генерирует дерево пакетов для каждого проекта, vcpkg делает их глобальными
  • Conan требует корректировки CMake файла, vcpkg это не нужно
  • Для Conan может пакеты делать каждый, но там публикация какая-то переусложенная по мне, у vcpkg пакетами занимается команда, им кидаешь тикеты или мержреквесты, они проверяют и принимают (или не принимают)

При помощи vcpkg я сегодня в своей новенькой Manjaro собрал статический бинарник, который легко запускается в говне мамонта под названием Centos7. :) Одной командой и правкой двух конфигов.

Может что еще есть, пишите комменты, я поправлю.
Всем счастья и бобра.


Название: Re: Менеджеры пакетов для c++
Отправлено: Igors от Май 16, 2020, 10:58
Ладно уж, не постесняюсь спросить  :) а кто такие "пакеты"? Глянул ReadMe по указанной ссылке
Цитировать
Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constantly evolving; your involvement are vital to its success!
Какие "libraries"? Каждая прикручиваемая либа имеет свою систему/инструкции которые надо выполнить, или как?


Название: Re: Менеджеры пакетов для c++
Отправлено: Пантер от Май 16, 2020, 14:27
Любый библиотеки, которые тебе нужно для твоего проекта:

Код:
./vcpkg install boost qt5-base cryptocpp

И можешь спокойно собирать свой проект. Причем корректно прописано для CMake и не придется потом прописывать пути, где искать эти библиотеки.


Название: Re: Менеджеры пакетов для c++
Отправлено: Igors от Май 16, 2020, 15:52
Любый библиотеки, которые тебе нужно для твоего проекта:

Код:
./vcpkg install boost qt5-base cryptocpp

И можешь спокойно собирать свой проект. Причем корректно прописано для CMake и не придется потом прописывать пути, где искать эти библиотеки.
Не очень понял. Обычно (гнусный) процесс сборки выглядит так

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

Т.е. в CMakе лазить по-любому приходится. Получается vcpkg облегчает поиск ? (ну конечно найдет только то что есть на машине)


Название: Re: Менеджеры пакетов для c++
Отправлено: Пантер от Май 16, 2020, 17:35
Он выкачивает все указанные библиотеки (со всеми зависимостями!), сам их собирает, сам устанавливает и настраивает CMake так, чтобы он нашел все эти либы для твоего проекта. Вроде проще некуда...