Я занимался этим годами на предыдущей работе.У компоновщика GNU просто возникают серьезные проблемы с производительностью при связывании большого количества статических библиотек.В какой-то момент время компоновки было на одном уровне со временем компиляции, что нам показалось настолько странным, что мы на самом деле исследовали это и выяснили.
Вы можете попробовать объединить ваши статические библиотеки в «суперобъект» перед компоновкой,Вместо того чтобы ссылаться так:
$ g++ -o program program.o $STATIC_LIBS
Вы можете попробовать это:
$ ld -r -o libraries.o --whole-archive $STATIC_LIBS
$ g++ -o program program.o libraries.o
Обратите внимание, что этот метод дает компоновщику меньше возможностей для исключения неиспользуемого объектного кода, поэтому ваши двоичные файлы могут увеличитьсяразмер несколько.