Установка сторонних библиотек в Makefile

У меня есть большой проект в C++, который я собираю (компилируются разные части в виде библиотек и потом линкуются) с помощью Makefile. До этого проекта опыта с Makefile у меня не было.

Сейчас я в своём проекте использую стороннюю библиотеку -- GLPK (www.gnu.org/software/glpk). Перед тем как запустить программу всем разработчикам и тестерам приходится устанавливать сначала отдельно GLPK, и только потом мою программу.

Можно ли в Makefile добавить зависимость проекта от внешней библиотеки (в частности, GLPK), чтобы при компиляции проверялось установлена ли эта библиотека и если нет, то устанавливалась с какого-то URL. (что-то вроде dependencies в maven)

Спасибо
  • Вопрос задан
  • 4145 просмотров
Пригласить эксперта
Ответы на вопрос 3
IlyaEvseev
@IlyaEvseev
Opensource geek
Самостоятельно скачивать не надо, т.к. она есть в стандартных дистрибутивах, и в зависимости от дистрибутива её надо устанавливать через yum, apt, zypper, pkg-add и т.д.

Достаточно указать зависимости в README.
Если хотите, чтобы они устанавливались автоматически, делайте установочные пакеты.
Для этого есть susestudio.com и https://abf.rosalinux.ru/
Ответ написан
Есть две хорошие системы менеджмента проектов на С++, это CMake и Scons. Вот мне чаще всего приходилось работать с Cmake, там достаточно просто и безболезненно происходит поиск хеддеров и библиотек в стандартных каталогах различных систем. Очень много опенсорсных проектов на С++ используют эту систему сборки - туторов и примеров настройки валом. Синтаксис у CMake довольно специфический - нужно привыкнуть, но менеджмент зависимостий реализован на "ура".

Тутор и ещё один и вот чуток статей

Можете рассматривать CMake как аналог Gradle без репозиториев, на Maven он не похож (
Ответ написан
Как и комментатор выше, раз Вы не использовали системы сборки раньше и принципиальной позиции нет, лучше выбрать что-то типа CMake (крайне популярная среди C++ разработчиков) или waf (набирающая популярность система сборки, отличный вариант для знатоков Python).

Для CMake все очень просто гуглится в интернетах. Например, Ваш случай.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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