Управление личными библиотеками на C

#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 проектом намного чище.