В моем проекте, который является основой, где производительность имеет значение, я использую несколько статических библиотек.При создании этих статических библиотек у меня есть два варианта их конфигурации:
- Включение «Оптимизация всей программы»
/GL
и «Генерация временного кода ссылки» /LTCG
и ограничение сборки выпуска моей платформыдля использования (из коробки) с одной конкретной версией набора инструментов платформы (скажем, «Visual Studio 2017 (v141)»).Попытка построить каркас в Visual Studio 2019 (v142) с использованием предварительно собранных библиотек v141 приводит к сообщению об ошибке, например "[...] был создан с более старым компилятором, чем другие объекты; перестроить старые объекты и библиотеки" для сборки выпуска.Единственный вариант здесь - это перестроить библиотеки с v142, но тогда они больше не могут быть использованы с v141. - Отключение
/GL
и /LTCG
для библиотек, что приводит к тому, что они могутиспользоваться со многими различными наборами инструментов платформы, т.е. v141, v142 и др.
Мой вопрос: есть ли у второго варианта какие-либо недостатки или скрытые подводные камни, или это правильный путь?Что делать, если во время выполнения происходит огромное количество обращений в библиотеки?Могут ли быть проблемы с производительностью?