Я поддерживаю проект библиотеки, который создает библиотеку «переднего плана» и несколько библиотек «внутреннего интерфейса».В проекте используется пакет Autotools (который я изучаю и считаю, что реализация нашего проекта нуждается в обслуживании), включая Libtool.В качестве разделяемых библиотек все это работает очень хорошо.У нас есть разработчик приложений, который использует библиотеку и предпочитает создавать статические библиотеки для облегчения его распространения программного обеспечения на несколько платформ (я не хочу обсуждать его мотивы).
Он сказал мне, что напредыдущий пункт он смог собрать одну большую статическую библиотеку, используя нашу систему сборки, но больше не мог.Я не смог точно отследить, когда это произошло, но подозреваю, что это может быть связано с одним из двух изменений.Первым изменением было удаление связанного исходного каталога libtool.Вторым было размещение внутренних библиотек в / usr / local / lib / project, а не разбрасывание их, как раньше, в / usr / local / lib (расположение по умолчанию).
То, что я не смог узнать, это какобъединить библиотеку фронтэнда с бэкэндами в одну удобную библиотеку в / usr / local / lib и сделать это в рамках Autotools.Это кажется возможным, но я не нашел примера, на котором можно было бы поучиться.
Кроме того, проекты собирают несколько утилит как часть нашего набора тестов.Я запустил configure с параметром --disable-shared, затем make, и утилиты статически связаны с библиотекой проекта.Теперь моя задача - сделать эту функцию доступной для сторонних приложений.