Вы можете рассматривать библиотеку как реализацию функций, которые вы можете использовать в своей программе, не потрудившись написать для них код. Например, вы используете функцию «printf», но на самом деле вы не пишете код для «printf». Проще говоря, библиотеки - это набор реализаций обычно используемого кода (или функций).
Когда вы компилируете и связываете вашу программу, основываясь на опциях связывания, ваша программа связывается (статически или динамически) с другими библиотеками.
Прочтите о статических и динамических ссылках для более подробной информации и лучшего понимания библиотек.
Давайте рассмотрим пример:
#include <stdio.h>
#include <math.h> // contains deceleration of sqrt function
int main ()
{
printf ("sqaure root of 4 is %d.", sqrt (4));
}
В этом коде мы используем функцию sqrt
, но мы ее не реализуем.
Теперь, если мы скомпилируем и свяжем его с библиотекой, содержащей определение функции sqrt (математическая библиотека), наш код будет хорошо работать во время выполнения.
Однако, если вы не хотите ссылаться на математическую библиотеку, вам придется написать собственную функцию для вычисления sqrt.
скомпилировать и связать математическую библиотеку с помощью команды:
gcc file.c -lm
здесь, -l используется для упоминания того, что мы собираемся связать библиотеку
-lm указывает связать библиотеку 'm' (или математику).
Подробнее читайте о компоновщиках.