Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 3.26 KB

libraries.md

File metadata and controls

48 lines (40 loc) · 3.26 KB

Бібліотеки

Структура директорії для лабораторної роботи

└── lab10
    ├── Doxyfile
    ├── Makefile
    ├── README.md
    ├── module-library
    │   ├── Makefile
    │   ├── src
    │   │   ├── lib.c
    │   │   └── lib.h
    │   └── test
    │       └── test.c
    └── module-main
        ├── Makefile
        └── src
            └── main.c

Основне завдання

  • на базі попередньо розробленого функціоналу, сформувати статичну бібліотеку, яка повинна включати в себе прототип, реалізацію та модульні тести розроблених методів. Таким чином, в проекті повинні бути 2 модуля:
    • бібліотека-модуль розробленого функціоналу (module-library)
    • основний модуль, що використовує розроблену бібліотеки (module-main)
    • тимчасова директорія lib, кудуи будуть класться бібліотеки та хедер файли;
  • файли бібліотеки мають бути 100 % doxygen документовані;
  • за допомогою утиліти nm дослідити перелік функцій, що має бібліотека;
  • вказання шляху хедер файлу для файла main.c повинно буди через опцію -I компілятора
  • проект бібліотеки повинен мати модульні тести, але вони не мають бути включені до скомпільованої бібліотеки.

Додаткові необов'язкові завдання

  • переробити розроблену статичну бібліотеку на динамічну;

Інше

  • оформлення звіту для цієї роботи не потрібно.

Контрольні питання.

  1. Що важче створювати: статичну чи динамічну бібліотеку?
  2. Припустимо, що дві програми використовують бібліотеки: одна з них статичну, друга – динамічну. Яка з двох програм завантажиться швидше? Чому?
  3. Припустимо, що дві програми використовують бібліотеки: одна з них статичну, друга – динамічну. Яка з двох програм (файлів, що виконуються) буде займати менше місця на диску? Чому?
  4. Що важче використовувати: статичну чи динамічну бібліотеку?
  5. Що важче підтримувати (виправляти баги): статичну чи динамічну бібліотеку?
  6. Опишіть порядок створення статичної бібліотеки.
  7. Опишіть порядок створення динамічної бібліотеки.