Какова роль статических библиотек?

Статические Библиотеки по умолчанию живут в /usr/lib или /usr/lib64 но я удалил всех их в своей ОС с этой командой:

find / -name *.a -exec rm -rf {} \;

Мой Linux уже в порядке, и все работает хорошее!

Мы можем сказать?

"Package.rpm или *.deb содержат выходы компилятора, только им нужны совместно использованные библиотеки.

И когда мы устанавливаем программное обеспечение от исходного кода, если в структуре пользуются статической библиотекой, компоновщиком в во время компиляции, Копия статические библиотеки к, он - исполняемый файл.

Без *.a файлы в моей системе, возможно, в будущем, если я установил бы программное обеспечение от исходного кода, я столкнусь с проблемами"

Объясните это мне простым способом

4
задан 24 July 2016 в 17:01

2 ответа

Статические библиотеки являются библиотеками, пользовавшимися двоичными файлами во время компиляции. Они обычно не используются снова во времени выполнения, поскольку они связаны со скомпилированным двоичным файлом во время компиляции и становятся частью самого двоичного файла.

кроме того, в реализации, это не общие для двоичные файлы, только двоичный файл, который компилируется с определенной статической библиотекой (библиотеками), использование что (они). Таким образом в приложении, это вполне напротив статически связанных библиотек.

Примечание, что, статические библиотеки заканчиваются в .a, в то время как динамические библиотеки заканчиваются в .so.

8
ответ дан 1 December 2019 в 08:59

Статические библиотеки являются двоичными автономными блоками скомпилированного исходного кода, который Вы "импортируете" в своем приложении когда сборка это статическим способом.

Действительно, программа вызвала компоновщика, выполните своего рода "копию и вставку" их скомпилированного кода наряду с Вашим скомпилированным исходным кодом (это немного более сложно, но это объяснение может быть, идут хорошо у, отвечают на Ваш запрос...).

Затем в сообщении, что Вы сообщили в OP, говорится в синтезе, что удаление статических библиотек из каталога "lib" не генерирует проблемы к установленным программам, потому что, как сказано, они уже "вставляются" в двоичных файлах установленных программ, и это может произойти в Linux, потому что его программы обычно распределяются directely их нескомпилированным исходным кодом, и таким образом, им нужен шаг компиляции, это обычно это сделано через с об/мин или другими менеджеры по пакетам/установке Linux.

Вместо этого поскольку всегда в добавленном сообщении говорится при установке новых программ затем установка могла бы перестать работать, если им нужно удаленных, освобождает, потому что при компиляции, компоновщик не найдет необходимым (сослался) статичный, освобождает.

я надеюсь, что это ясно, жаль о моем плохом английском языке..

2
ответ дан 1 December 2019 в 08:59

Другие вопросы по тегам:

Похожие вопросы: