Если приложение C ++ связано с тяжелой библиотекой шаблонов, перекомпилирует ли оно все определения шаблонов в библиотеке при компиляции приложения? - PullRequest
0 голосов
/ 11 января 2019

У меня есть библиотека C ++ только для заголовков, которая в основном состоит из шаблонов со всеми реализациями в заголовочных файлах.

Теперь, чтобы сократить время компиляции, я пытаюсь сделать из него файл .so (совместно используемая библиотека) и связать его извне из приложения. Будет ли он перекомпилироваться всегда при компиляции приложения?

Имеет ли смысл быть в Linux, используя g ++?

1 Ответ

0 голосов
/ 11 января 2019

Да и нет.


Да

Все ваши шаблоны необходимо будет перекомпилировать всякий раз, когда приложение, использующее их, перекомпилируется.

нет

Нет

Это не потому, что они будут в общей библиотеке. Они не будут. Они все еще будут в заголовках.

Если это не так. Если вы можете явно создать экземпляр всего, что вам нужно, то вы можете просто запечь их в свою библиотеку, как если бы вы не использовали шаблон. Где-то на этой странице .

имеется масса информации об этом.

Если вы хотите сократить время компиляции и загружать шаблоны, обычно вам нужно просмотреть предварительно скомпилированные заголовки .

...