[c++] Разница между статическими и разделяемыми библиотеками?



Answers

Статическая библиотека похожа на книжный магазин, а общая библиотека похожа на ... библиотеку. С первым вы получаете свою собственную копию книги / функции, чтобы забрать домой; с последним вы и все остальные ходите в библиотеку, чтобы использовать ту же книгу / функцию. Поэтому любой, кто хочет использовать (общую) библиотеку, должен знать, где это, потому что вам нужно «пойти» на книгу / функцию. С помощью статической библиотеки книга / функция принадлежит вам, и вы храните ее в своем доме / программе, и как только вы ее получите, вам все равно, где и когда вы ее получили.

Question

В чем разница между статическими и разделяемыми библиотеками?

Я использую Eclipse и существует несколько типов проектов, включая Static Libraries и Shared Libraries? Имеет ли преимущество преимущество над другим?




Статические библиотеки скомпилированы как часть приложения, а разделяемые библиотеки - нет. Когда вы распространяете приложение, которое зависит от общих библиотек, библиотеки, например. Должны быть установлены dll на MS Windows.

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

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




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

OTOH, преимущество статических библиотек в том, что все включено в ваше приложение. Поэтому вам не нужно беспокоиться о том, что у клиента будет доступная библиотека (и версия), доступная в их системе.




Related