@Urukhayy

Можно ли без сборки установить фреймворк для C++?

Для примера фреймворк/библиотека: https://grpc.io

В официальной инструкции по установке для C++ сказано, что нужно произвести сборку (build через make). Почему нельзя установить готовую, собранную заранее библиотеку? С чем связано то, что некоторые библиотеки нужно собирать локально?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
Не совсем понимаю почему SmInc так сильно завязался на сценарий заливки в VCS, если под заранее собранной может пониматься и выложенная например в releases на гитхабе.

Есть ряд объективных проблем:
  • большое количество архитектур, под которые нужно выполнять сборку;
  • большое количество конфигураций сборки - в мире C++ приятно делать в библиотеках возможность compile-time конфигурирования - когда отдельные фичи могут менять своё поведение или отключаться в момент КОМПИЛЯЦИИ, а не работы библиотеки. Сюда же разлчиная степень оптимизации, debug/release-билды и так далее;
  • большое количество тулчейнов и операционных сред - Клэнг на FreeBSD, gcc на Линуксе, VC++ на Винде, Клэнг на Винде и так далее..

Все вышеперечисленные факторы приводят к комбинаторному взрыву вариантов сборки. Поэтому некоторые проекты по получению некоего "пакетного менеджера" или "каталога библиотек" идут по пути дерева портов, например vcpkg. Тут всё просто - вы знаете какой конкретно сейчас вам нужен компилятор, какие ОС и т.д. - скрипт автоматизации сборки помогает вам собрать библиотеку. Это довольно продуктивный компромисс.
Кроме того, не следует также отбрасывать вариант сборки заранее "для себя", которая вполне может прижиться в локальной среде для среднего и круного проекта. См. например репозитории ПМ Conan и реализацию от JFrog.

Вообще в плюсах из-за зоопарка платформ и инструментов острейшим образом стоит проблема интеграции библиотек. В стеке C++ (если вообще можно такой обозначить) общим знаменателем является, пожалуй, только сам C++. Всё остальное зависит как от авторов библиотеки - с одной стороны, так и от вашей среды где вы собираетесь библиотеку запускать - с другой стороны. Так что привыкайте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы