Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу В чем отличие dynamic library от shared library
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию В чем отличие dynamic library от shared library - 25.01.2011, 19:45

Всем привет! Вот как я понимаю:
код static library "вкомпилировывается" (во время линковки) в код, который ее использует.
код dynamic library используется во время run-time.

А что такое shared library?

Спасибо!
Ответить с цитированием
  (#2 (permalink)) Старый
IL_Agent IL_Agent вне форума
Member
 
Аватар для IL_Agent
 
Сообщений: 2,015
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.07.2005
По умолчанию 26.01.2011, 14:23

Это где такое ? Т.е. в каком контексте ?
Ответить с цитированием
  (#3 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 26.01.2011, 14:42

Ну вот на работе тут чел один грит что есть 3 вида библиотек... Вот стало интересно что за shared и чем они от dll отличаются... Просто щас нет возможности у него спросить
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,470
Сказал(а) спасибо: 22
Поблагодарили 944 раз(а) в 928 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.01.2011, 15:41

Library (computing) - Wikipedia, the free encyclopedia
Ответить с цитированием
  (#5 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 26.01.2011, 17:38

Т.е. как я понимаю, тут разделение идеологическое. В unix-подобных ОС - это shared libraries, в windows-подобных ос - это dynamic linked libraries.

Насколько я помню, при написании тех же dll для хуков (как давно это было), там через директивы #pragma указывается какие данные должны быть для каждого подгружаемого ее модуля свои. А остальной-то код общий... Т.е. если dll используется одним процессом - то это dynamic library, а если хотябы двумя - то shared... Тогда говорить, что есть 3 типа библиотек (+ static libraries) не совсем грамотно... так?)
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,470
Сказал(а) спасибо: 22
Поблагодарили 944 раз(а) в 928 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 26.01.2011, 18:26

Ни грамотно, ни неграмотно, просто частный случай.
Ответить с цитированием
  (#7 (permalink)) Старый
<name> <name> вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.01.2011
По умолчанию 26.01.2011, 18:34

Типов библиотек - два: компонуемые динамически (dll) и статически (lib). А shared - это просто свойство dll. Если используется библиотека двумя или более процессами, то она разделяема. Другое дело - поддерживает ли она множество клиентов. Статические библиотеки, после компоновки "находящиеся" в том же модуле, что и клиент, не могут быть разделяемы по определению.
Ответить с цитированием
  (#8 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 27.01.2011, 09:56

Ясно, спасибо!
Ответить с цитированием
  (#9 (permalink)) Старый
Alex_cs_gsp Alex_cs_gsp вне форума
Member
 
Сообщений: 56
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.12.2008
По умолчанию 27.01.2011, 12:02

Динамик - твой код использует dll, которые могут находится в рабочей папке, в папке с исполняемым модулем, в каталоге Windows или в каталоге System. При запуске приложений загрузчик Windows грузит эти длл в адресное пространство процесса и выполняет динамическое связывание - в область импорта исполняемого модуля прописываются адреса ф-ий из длл.
Статическое связывание - физически ф-ии из длл на этапе компиляции встраиваются в исполняемый модуль.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IBM system storage ds3200 tape library OBsis Накопители 1 08.10.2010 02:54
VS2008+ dynamic library problem tatvisio Visual C++ 6 05.11.2009 15:05
Необходима информация об использовании Static Library Dyakon_Frost C++ Builder 3 08.12.2007 11:02
Для чего нужна boost library just_vladimir С/С++ 3 04.02.2007 22:21
Работа с ComPort Library как с ней работать Viland C++ Builder 3 07.07.2006 14:22
Как правильно установить компонент ComPort Library MaMaV C++ Builder 1 08.10.2005 22:44
Использование xBase Library под Visual C++ .Net gash Visual C++ 0 26.07.2005 18:54
Trolltech Qt Library требуются программисты Anonymous Trolltech Qt 12 27.12.2003 15:30
Не загружается MSDN Library Anonymous Visual C++ 4 25.12.2003 15:08
Как обратиться к ресурсям находящимся в Static Library UZZer Visual C++ 1 07.08.2003 05:21
Matrix Template Library как с ней работать Kutushut С/С++ 0 31.10.2002 17:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов