Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Мета роботи. Вивчити прийоми та методи створення та використання статичний та динамічних бібліотек




Вивчити прийоми та методи створення та використання статичний та динамічних бібліотек

2.2 Підготовка до роботи

2.2.1 Загальна характеристика статичних бібліотек

Статичні бібліотеки (файл з розширенням lib) компонується разом з додатком, в якому використовується ця бібліотека.

Переваги статичних бібліотек:

- статична бібліотека утворює разом з рештою додатку єдине ціле, тобто для використання додатка достатньо мати один файл типу.exe.

- простота використання за рахунок того, що використання функції зі статичної бібліотеки нічим не відрізняється від використання функцій, визначений в додатку.

Недоліки статичних бібліотек:

- бібліотеки залежать від середовища, в якому вони створені. Так бібліотека, яку було створено в середовищі С++ Builder, не можна використовувати в середовищі Visual Studio та навпаки;

- при зміні коду бібліотеки потрібна повторна компоновка усіх додатків, які використовують бібліотеку;

- якщо декілька додатків використовують одну і ту ж бібліотеку, копія цієї бібліотеки зберігається в пам’яті кожного додатку.

2.2.2 Загальна характеристика динамічних бібліотек

Динамічні бібліотеки (Dynamic Link Library - DLL), файли з розширенням DLL, завантажуються під час завантаження модуля, який використовує бібліотеку, або під час його виконання.

Переваги DLL:

- бібліотеки не залежать від середовища, в якому вони створені. Так бібліотека, яку було створено в середовищі С++ Builder, можна використовувати в середовищі Visual Studio та навпаки;

- при зміні коду бібліотеки не потрібна повторна компоновка додатків, які використовують цю бібліотеку, ось чому операційна система використовує цей тип бібліотек для модулів, які можуть змінюватися в залежності від версії та в разі помилок;

- якщо декілька додатків використовують одну і ту ж бібліотеку, копія цієї бібліотеки зберігається в пам’яті тільки один раз.

Недоліки DLL:

- окрім програми, яка виконується необхідно мати додатковий модуль – саму бібліотеку;

- функції DLL використовувати складніше, ніж функції статичної бібліотеки.

Решта переваг та недоліків DLL залежать від режимів використання бібліотеки цього типу.

Порівняйте переваги і недоліки кожного типу бібліотек і зробіть висновки по тому. коли треба використовувати кожний тип бібліотеки!

2.2.3 Створення статичних бібліотек

Незалежно від середовища, в бібліотеку можна підключати C++, C, OBJ файли. Файли на мові Асемблер мають особливості, які залежать від середовища, тому краще усі функції писати з заголовком на мові С.

Розглянемо формування статичної бібліотеки для Visual Studio 2008, для інших середовищ бібліотеки створюються подібно.

Спосіб 1. Використання середовища. Виконати Project®Win32 Project і далі обрати в Application Settings - Static library і далі натиснути Finish. До проекту можна додавати як нові компоненти, так і вже існуючі. у тому числі інші статичні бібліотеки. Серед модулів, які додаються не може бути модуля з визначенням головної функції. В результаті буде сформовано файл *.lib. Ім’я бібліотеки співпадає з іменем проекту, його можна замінити. Бібліотека вміщує довідник функцій, в якому для кожної функції визначається її відносна адреса і розмір. Після довідника розташовані самі функції.

Недолік цього способу – треба ввійти в середовище для розробки при довільних змінах в бібліотеці, наприклад, додавання коментаря.

Спосіб 2. Використання командного файлу. Для створення бібліотеки необхідно виконати:

- компіляцію усіх файлів з розширенням c, cpp (програма cl.exe);

- створення бібліотеки з окремих об’єктних модулів (програма lib.exe).

При завданні програм для виконання необхідно задавати повне ім’я файлу.

Для програми cl.exe дуже багато параметрів, але обов’язковими є тільки:

/I " Шлях до каталогу include Visual Studio ", якщо використовуються стандартні файли заголовків;

/c – тільки компіляція (компонувальник не використовується);

Приклад рядка для виклику cl.exe, якщо каталог для двійкових файлів"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin, каталог для стандартних файлів – заголовків: c:\Program Files\Microsoft Visual Studio 9.0\VC\include, а в бібліотеку треба підключити функції з файлу static.cpp:

"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" /I "c:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c static.cpp

Для перевірки успішності завершення компіляції (не було помилок компіляції) використовуємо рядок:

if ErrorLevel 1 goto merror

Для програми lib.exe в якості параметрів задаються:

/OUT: Імя файлу – бібліотеки з розширенням lib;

Імена об’єктних файлів, та бібліотек, які необхідно підключити до бібліотеки.

Приклад рядка для виклику lib.exe, якщо каталог для двійкових файлів"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin і в бібліотеку підключається файл static.obj:

"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\lib.exe" /OUT:static.lib static.obj

Для перевірки успішності створення бібліотеки використовуємо рядок:

if ErrorLevel 1 goto merror

Після створення бібліотеки знищуємо непотрібні файли типу.obj (рядок del *.obj)

Таким чином, командний файл (назвемо його static.cmd):

"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" /I "c:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c static.cpp

if ErrorLevel 1 goto merror

"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\lib.exe" /OUT:static.lib static.obj

if ErrorLevel 1 goto merror

del *.obj

echo ok

goto mok

:merror

echo error

:mok

Порівняйте бібліотеки, створені в середовищі, та за допомогою командного файлу!

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 519; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.