| Подключение библиотек |
|
Рассмотрим в качестве примера программу для возведения числа в степень Программа power.c #include <stdlib.h> Функции printf () и atof () реализованы в стандартной библиотеке языка С, которая автоматически подключается к проекту во время компоновки. Функция pow() принадлежит библиотеке математических функций, которую нужно подключать отдельно. Математическая библиотека, представленная файлами libm.so (динамический вариант) и libm.a (статический вариант), имеется практически в любой Linux-системе. Следовательно, для сборки приведенной программы необходимо указать следующую команду: $ gcc -о power power.с -lm Возникает вопрос: какая именно библиотека была подключена? Оба варианта математической библиотеки (статическая и динамическая) подходят под шаблон -lm. В таких ситуациях предпочтение отдается динамическим библиотекам. Но если при компоновке указать опцию -static, то приоритет изменится в сторону статической библиотеки: $ gcc -static -о power power.с -lm Теперь сравните размеры исполняемых файлов. Бинарник, полученный в результате линковки с опцией -static, значительно больше. Это обусловлено тем, что статическая библиотека полностью внедряется в исполняемый файл, а совместно используемая библиотека лишь оставляет информацию о себе.
Related Articles
Set as favorite
Bookmark
Email This
Hits: 479 Комментарии (0)RSS feed CommentsНаписать комментарий |