Требуется ли скомпилированной программе библиотека C - или любая другая библиотека в этом отношении - зависит от того, как она была связана .
В целом, если ваша программа была связана статически тогда у него нет внешних зависимостей - ему нужно только работающее ядро.Исполняемый код любой библиотеки, от которой он зависит, будет включен в конечный исполняемый файл.
Если, с другой стороны, он связан динамически , то ему все еще требуется общий объект файлы библиотек, от которых он зависит.В Linux большинство общих библиотечных объектов (также известных как разделяемые библиотеки ) придерживаются соглашения о наличии имени файла с расширением .so
или, в общем, в формате *.so.*
.Например, /lib/libssl3.so
и /lib/libncurses.so.5.9
являются общими библиотеками в моей системе.
Также возможно иметь исполняемый файл, который статически связан с некоторыми библиотеками и динамически связан с другими.Обычный случай, когда это происходит, когда статические редкие или проприетарные библиотеки связаны между собой, а стандартные системные библиотеки - динамически.