Решение Visual Studio: статические или общие проекты? - PullRequest
0 голосов
/ 15 мая 2010

Когда весь проект (решение) состоит из нескольких подпроектов (.vcproj), какой предпочтительный способ связать их: как статические библиотеки или как общие библиотеки?

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

1 Ответ

3 голосов
/ 15 мая 2010

Мнение: Статическое, почти во всех случаях.

Построение интерфейсов в динамически загружаемых библиотеках намного сложнее в C ++ для Windows. Например, в отличие от общих объектов Unix, у вас не может быть стандартного синглтона для всех модулей, потому что у DLL будет собственный набор статических переменных.

Объектно-ориентированные интерфейсы часто трудно экспортировать из DLL.

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

С другой стороны, библиотеки, которыми вы не делитесь сегодня, могут стать общими в будущем. Однако в большинстве случаев лучше заплатить цену дублирования в ОЗУ или образе диска, чем цену зависимости от дополнительных модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...