Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Типы линковок, когда и какую использовать 
:(
    Опции темы
Atiskara
Дата 6.4.2010, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



Цитата(Lazin @ 24.10.2008,  12:29)
Во первых, следует пояснить, что (почти)любая программа на с++ использует стандартную библиотеку - c runtime library, которая содержит набор функций, используемых программой. Например функции для работы с динамической памятью, со строками, с файлами и много чего еще. Эта библиотека может компоноваться либо динасически, либо статически. 

а какие преимущества и недостатки у этих компоновок? И что предпочтительнее в каких случаях использовать?
PM MAIL   Вверх
bsa
Дата 6.4.2010, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



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

Статическая линковка используется для создания единого исполняемого файла, который не зависит от сторонних библиотек. Т.е. такой файл можно спокойно переносить с компьютера на компьютер, и он будет работать (если, конечно, ОС одна и та же). Если несколько модулей одной программы используют одни и те же функции, которые прилинкованы статически к каждому модулю, то итоговый размер программы возрастает. С другой стороны, если используется только одна функция из большой библиотеки, то очень вероятно, что линкер только ее и прикрепит к исполняемому файлу, а остальное выкинет. Что сильно сэкономит размер программы.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.