Либо напиши что-нибудь стоящее, либо сделай что-нибудь достойное написания
По сути, библиотека — это набор функций.
- Зачем вообще использовать библиотеки?
Важно использовать библиотеки в c, потому что это позволяет нам активировать использование нескольких функций, сделав один вызов из файла .head.
- Как они работают?
Вы могли заметить, что мы используем функции, которые не определены в нашем коде или в этом конкретном файле. Чтобы иметь к ним доступ, мы включаем заголовочный файл, содержащий объявления этих функций (файл .h). После компиляции происходит процесс, называемый связыванием, который связывает эти объявления функций с их определениями, которые находятся в другом файле. Результатом этого является фактический исполняемый файл.
Связывание, как я описал, является статическим связыванием. Это означает, что каждый исполняемый файл содержит в себе все библиотеки (наборы функций), которые ему необходимы. Это пустая трата места, так как есть много программ, которым могут понадобиться одни и те же функции. В этом случае в памяти было бы больше копий одной и той же функции. Динамическое связывание предотвращает это, связывая во время выполнения, а не во время компиляции. Это означает, что все функции находятся в специальном пространстве памяти, и каждая программа может получить к ним доступ, не имея их нескольких копий. Это уменьшает объем требуемой памяти.
Как я уже упоминал в начале своего ответа, это очень упрощенное изложение, чтобы дать вам общее представление. Я настоятельно рекомендую вам больше изучить эту тему.
Статическая библиотека — это файл .lib, который будет связан внутри вашего исполняемого файла и не изменится со временем.
Динамическая библиотека представляет собой файл .dll, связанный с вашим исполняемым файлом, и может меняться в зависимости от файла dll, который вы загружаете при его выполнении.
- Как их создать (только для Linux)?
Чтобы создать библиотеку, мы должны сначала иметь все файлы .c с функциями, которые мы хотим, чтобы наша библиотека имела. После этого создаем файл .h со всеми прототипами функций. Затем мы выполняем следующие команды, и мы уже создали нашу библиотеку:
- gcc -fPIC -c *.c
- gcc -shared -o (имя моей библиотеки).so *.o
- Зачем вообще использовать библиотеки?
Важно использовать библиотеки в c, потому что это позволяет нам активировать использование нескольких функций, сделав один вызов из файла .head.
Различия между статическими и динамическими библиотеками и каковы преимущества и недостатки каждой из них: