Добавить в корзинуПозвонить
Найти в Дзене
Old Programmer

Ассемблер. Создаем динамические библиотеки в ОС Linux

Все ссылки на статьи и ролики моего канала Old Programmer: Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А вот это ссылки на все мои статьи так или иначе связанные с языком ассемблера. Динамические библиотеки на языке assembler (x86-64 Linux) Отличие динамических библиотек от статических в программировании заключается в том, что статические библиотеки подключаются на стадии компиляции (раннее связывание), а динамические библиотеки подключаются на стадии выполнения (позднее связывание). Сегодня как раз говорим о динамических библиотеках. Динамические библиотеки позволяют значительно экономить память, так как подгружаются по мере необходимости. Кроме этого, одной динамической библиотекой могут пользоваться сразу несколько программ. В прошлой статье были приведены примеры двух программ и двух модулей на языке ассемблера, которые мы упаковали в одну статическую библиотеку с помощью утилиты ar. Мы воспользуемся первыми двумя программами из этой статьи. Во

Все ссылки на статьи и ролики моего канала Old Programmer: Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А вот это ссылки на все мои статьи так или иначе связанные с языком ассемблера.

Динамические библиотеки на языке assembler (x86-64 Linux)

Отличие динамических библиотек от статических в программировании заключается в том, что статические библиотеки подключаются на стадии компиляции (раннее связывание), а динамические библиотеки подключаются на стадии выполнения (позднее связывание). Сегодня как раз говорим о динамических библиотеках.

Динамические библиотеки позволяют значительно экономить память, так как подгружаются по мере необходимости. Кроме этого, одной динамической библиотекой могут пользоваться сразу несколько программ.

В прошлой статье были приведены примеры двух программ и двух модулей на языке ассемблера, которые мы упаковали в одну статическую библиотеку с помощью утилиты ar. Мы воспользуемся первыми двумя программами из этой статьи.

Возьмем за основу программы: as2000.s - модуль, который должен стать динамической библиотекой, c2000.c - основная программа.

Для компиляции выполним следующую последовательность команд

as --64 as2000.s -o as2000.o
gcc -shared -o libas2000.so as2000.o
gcc -c c2000.c
gcc c2000.o libas2000.so -o c2000

В текущем каталоге появиться динамическая библиотека libas2000.so (SO - shared object, т.е. разделяемый объект ).

Библиотека Линукс. Найдется все. Рисунок, свободно распространяемый в Интернет
Библиотека Линукс. Найдется все. Рисунок, свободно распространяемый в Интернет

Динамические библиотеки должны располагаться в каталогах /lib или /usr/lib. Проследите за этим, это важный момент. Т.е. скопируйте вашу динамическую библиотеку в один из этих каталогов. После этого запустите полученную программу ./c2000 и если все сделано правильно, программа даст правильный результат.

Подписываемся на мой канал о программировании и программистах Old Programmer и пополняйте библиотеку Linux.