Я сотрудничаю с проектом C++ с примерно 100 000 строк кода, который сильно переплетается и строит в две библиотеки библиотеку "util" и "физическую" библиотеку. Получающиеся в результате файлы lib чрезвычайно велики, размер 265Mb/1.2Gb при компиляции с помощью отладочных символов, но даже без них - 161Mb/700Mb. Затем они используются в 30 различных исполняемых файлах.
Проблемы в том, что отладка становится очень сложной: вы меняете одну строку, а затем один исполняемый файл занимает 30 секунд на мощной машине с SSD.
Наиболее очевидной стратегией управления этим является разделение файла lib на многие. Сколько, т.е. Какой идеальный размер для файла lib? Есть ли что-то неправильное в том, чтобы расщепляться только в алфавитном порядке? (т.е. все файлы.o, начинающиеся с a или A, переходят на libphysicsA.a и т.д.)?
Ваша проблема - компиляция в течение длительного времени, поэтому, очевидно, вам нужно продолжить разделение, пока время компиляции не станет удовлетворительным. Лучше разбить библиотеку по значению ее частей или по частоте использования. Составьте вместе те модули, которые связаны главным образом по смыслу или используются часто/нечасто. Разделение в алфавитном порядке приведет к тому, что ваш проект будет использовать слишком много разных частей библиотеки и даже все из них, замедляя компиляцию до начального значения времени.