#c #git #module
#c #git #модуль
Вопрос:
За эти годы я накопил код, который часто встречается в моих проектах, и решил разделить его на библиотеки для упрощения повторного использования.
До недавнего времени я довольствовался простым копированием необходимых файлов в мой текущий проект, но это начинает становиться неэффективным; я должен включать исходные тексты для этих библиотек в каждый проект git, и если я нахожу ошибку, я должен обновлять все проекты, используя ошибочный код.
Поиск вокруг, похоже, git submodules
может быть решением. Есть ли какие-либо другие альтернативы? Я полагаю, что программистам свойственно иметь эти «личные библиотеки». Как вы ими управляете?
Комментарии:
1. У меня просто есть рекурсивная настройка makefile, которая создает все библиотеки в определенном порядке, а затем просто копирует их все в общую промежуточную область, определяемую переменной среды, унаследованной makefiles. Другие проекты (приложения, службы и т.д.) используют ту же переменную среды для импорта библиотек из промежуточной области. Это решение строго зависит от переменных среды GNU make и оболочки.
2. Создайте библиотеку. Установите его в
/usr/local/lib
или$HOME/lib
или$HOME/$(uname -m)/lib
. Ссылка на него.3. Проблема в том, что вы делаете, когда хотите распространять проект, использующий одну или несколько ваших библиотек. Вы включаете статические библиотеки или просите заинтересованных загрузить их?
4. Рассмотрите возможность использования
git subtree
вместоsubmodule
. Позволяет проверять ваш проект и работать сsub
проектом намного чище.