Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lr7.pdf
Скачиваний:
9
Добавлен:
01.04.2022
Размер:
1.03 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский Технический Университет Связи и Информатики»

Кафедра математической кибернетики и информационных технологий

Лабораторная работа №7 по дисциплине «Системное программирование»: «Работа с динамическими библиотеками в языке программирования с»

Выполнил студент группы БФИ1901 Рахимов Егор Проверил:

Фатхулин Тимур Джалильевич

Оглавление

 

Цель работы.................................................................................................................

2

Задание на лабораторную работу..............................................................................

2

1. Создать исходный код собственной динамической библиотеки. ...................

3

2.Скомпилировать объектные файлы для создания динамической библиотеки 6

3. Связать созданную динамическую библиотеку с основной программой. .

11

Вывод .........................................................................................................................

12

Контрольные вопросы ..............................................................................................

12

Цель работы

Изучить и практически освоить основы работы с динамическими

библиотеками в языке программирования C.

Задание на лабораторную работу

1. Создать исходный код собственной динамической библиотеки.

Необходимо создать отдельные каталоги

В каталоге "library" находиться еще один каталог (…/library/source). Исходный код для библиотеки было решено разместить в двух файлах исходного кода. В

каталоге "project" находится исходный код самой программы.

Пусть каталоги "library" и "project" находятся в одном общем каталоге,

например, домашнем каталоге пользователя. Каталог "library" содержит каталог 5 "source" с файлами исходных кодов библиотеки. Также в "library"

будут находиться заголовочный файл (содержащий описания функций библиотеки) и динамическая библиотека ("libmy.so"). Каталог "project" будет содержать файлы исходных кодов проекта и заголовочный файл с описанием функций проекта. Также после компиляции с подключением библиотеки здесь будет располагаться исполняемый файл проекта. В операционных системах

GNU/Linux имена файлов библиотек должны иметь префикс "lib", статические библиотеки - расширение *.a, динамические - *.so.

Рисунок 1 – Схема каталогов проекта Последовательно выполняйте запись текстов кода и команды согласно следующим указаниям. Создайте файл с исходным кодом динамической библиотеки "text.c":

Рисунок 2 – Создание файла «text.c»

В файле "text.c" определена единственная функция, принимающая указатель на символ строки. Функция выводит на экране звездочки в количестве,

соответствующем длине указанной строки. Создайте файл "figure.c":

Рисунок 3 – Создание файла «figure.c»

В файле "figure.c" содержатся две функции — rect() и diagonals(). Первая принимает в качестве аргументов символ и два числа и "рисует" на экране с помощью указанного символа прямоугольник заданной ширины и высоты.

Вторая функция выводит на экране две диагонали.

Рисунок 4 – Состав каталога “source”

Создайте заголовочный файл "mylib.h", содержащий описания функций

библиотеки:

Рисунок 5 – Создание файла «mylib.h»

Заголовочный файл "mylib.h" можно создать в каталоге "source", но лучше сохраним его там, где будут библиотеки. В данном случае это на уровень выше

(каталог "library"). Тем самым как бы подчеркивается, что файлы исходных кодов после создания из них библиотеки вообще не нужны пользователям библиотек, они нужны лишь разработчику библиотеки. А вот заголовочный файл библиотеки требуется для ее правильного использования.

Соседние файлы в предмете Системное программирование