У меня огромная проблема. У меня есть общая библиотека, которая используется во всем моем проекте. Эта библиотека интенсивно использует boost.spirit
и boost.fusion
. К сожалению, библиотека ок. Размер 700Mb. Весь boost.spirit
-heavy код используется, и он работает хорошо. Какие шаги можно предпринять для уменьшения размера выпуска? Есть ли инструмент, который может помочь определить, какие шаблонные экземпляры тратят большую часть пространства?
Сначала я решил переместить весь код, поддерживающий дух, в файлы cpp. Во-вторых, я попытаюсь использовать различные флаги компилятора для оптимизации размера. Я не знаю, что еще делать.
Обновить (подробности)
Я использую GNU toolchain. Огромная библиотека на самом деле является статической библиотекой. Исполняемый файл, который использует эту библиотеку 700 Мб, имеет размер 200 МБ. По крайней мере половина кода находится в *.h файлах. Некоторые грамматики boost.spirit
(очень тяжелая тема) также находятся в файлах *.h.
Ура!