Я собираюсь попытаться реорганизовать способ, которым моя группа создает набор больших приложений, которые разделяют около 90% их исходных файлов. В настоящее время эти приложения создаются без каких-либо библиотек, кроме внешних, которые не находятся под нашим контролем. В приложениях используются одни и те же общие исходные файлы (мы не поддерживаем 5 версий одних и тех же файлов .h / .cpp), но они не встроены ни в одну общую библиотеку. Таким образом, в настоящее время мы платим цену за создание одного и того же кода снова и снова для каждого приложения, каждый раз, когда мы намереваемся выпустить версию. Для меня это звучит как основной кандидат на использование библиотек для захвата общего кода и сокращения времени сборки. У меня нет возможности использовать DLL, поэтому подход заключается в использовании статических библиотек.
Я хотел бы знать, какие советы вы бы дали, как решить эту задачу. У меня ограниченный опыт создания / организации статических библиотек, поэтому приветствуются даже основные предложения по организации / получению. Может быть, даже хорошая книжная рекомендация?
Я сделал короткое упражнение, найдя все подмножество файлов, которые совместно используются каждым приложением. В качестве подтверждения концепции я взял эти файлы и поместил их в одну статическую библиотеку "Common Monster". Сборка полного приложения с использованием этой единственной статической библиотеки, безусловно, сокращает время сборки всех приложений, но стоит ли на этом останавливаться? Назначение библиотеки в этой форме не очень сфокусировано и выглядит как ленивая попытка модульности. Эти приложения находятся в процессе разработки, и я боюсь, что эта установка вызовет проблемы в дальнейшем.