Что такое статические библиотеки в языке программирования C? Для начала нам нужно понять, что компиляторы (специальные программы на C, которые превращают операторы, написанные на языке программирования, в машинный код или код, понятный компьютеру) предоставляют нам библиотеки. Библиотека — это файл, содержащий несколько объектных файлов, а объектные файлы — это файлы, содержащие объектный код, тип перемещаемого машинного кода, который невозможно выполнить. Статические библиотеки заканчиваются расширением или суффиксом «.a» (без кавычек).

Статические библиотеки уже не так популярны, как раньше, в основном из-за преимуществ разделяемых библиотек. Однако они существовали раньше и создаются до сих пор.

Как создать статическую библиотеку?

Чтобы создать статическую библиотеку (или добавить новые объектные файлы в существующую библиотеку), вы можете использовать следующую команду:

ar rcs my_library.a file1.o file2.o

Эта команда добавляет файлы file1.o и file2.o в статическую библиотеку my_library.a (и создает библиотеку, если она еще не существует). Создав статическую библиотеку, вы можете использовать ее, вызывая ее как часть процесса компиляции и компоновки при создании исполняемой программы. Вы можете ознакомиться с дополнительной информацией о процессе компиляции здесь.

Чем полезны статические библиотеки?

Статические библиотеки — это, по сути, набор функций, и они пригодятся, когда вы пытаетесь решить конкретную задачу или проблему. Например, вот отличная аналогия от Николаса Тейшейры: Если вы хотите собрать стол, купленный в ИКЕА, в ИКЕА есть удобный набор инструментов, таких как торцевой ключ на 8 мм, отвертка и инструкции по сборке. собрать стол. Если вы хотите складывать числа вместе из командной строки, C включает стандартную библиотеку функций, таких как printf() и atoi(), чтобы проверить, являются ли строки из вашего массива argv[] цифрами, и распечатать результат на терминале. Инженеры-программисты используют библиотеки в своих программах для решения конкретных задач. Вы не стали бы использовать отбойный молоток для построения таблицы, как не стали бы использовать дополнительные библиотеки для сложения чисел.

Помните, что если вы используете gcc в качестве компилятора, вы можете использовать флаг -l для указания библиотеки, но вы должны быть осторожны с порядком ваших параметров. Так как -l является опцией компоновщика, она должна быть помещена после ваших имен файлов, которые должны быть скомпилированы. В противном случае вы получите странные ошибки, и файлы вообще не будут связаны.