Оптимизация времени соединения обычно осуществляется путем помещения некоторого IR в объектные файлы вместо реального машинного кода. Таким образом, при работе со статическими библиотеками это просто набор таких IR-файлов, и LTO должен выполняться каждый раз, когда код, использующий его, изменяется.
Если вы создаете разделяемую библиотеку, вместо этого LTO выполняется только один раз, и код внутри dll полностью оптимизируется.
Возможно ли также иметь некоторые оптимизации в единицах перевода при работе со статическими библиотеками? Я знаю, что это не будет так же, как вы не можете делать какие-либо предположения для всей программы, но разве не должно быть возможно сделать некоторые базовые вещи, такие как встраивание сеттеров / геттеров, которые не определены в заголовке?
Задача ещё не решена.
Других решений пока нет …