429 читали · 7 лет назад
Немного о линковки статических библиотек
Базовые понятия, кратко Совершенно неожиданное открытие сделал недавно. Оказывается порядок появления файлов на входе линковщика важен, если мы говорим о линковки статических библиотек. Для того что бы понять почему так происходит, нужно понимать принцип работы линковщика. Объектные файлы как предоставляют(экспортируют) символы(имена функций, переменных), так и ожидают(импортируют) их. Рассмотрим небольшой пример: int imported(int); static int internal(int x) { return x * 2; } int exported(int x) { return imported(x) * internal(x); } Теперь скомпилируем этот файл: gcc -c test.c nm test.o 000000000000000e...
Linux библиотеки
В Linux библиотеки играют ключевую роль в организации и повторном использовании кода. Они представляют собой коллекции функций и данных, которые могут быть использованы несколькими программами одновременно, что позволяет экономить место на диске, уменьшать размер исполняемых файлов и облегчать процесс обновления и обслуживания программного обеспечения. Типы библиотек в Linux: Статические библиотеки (.a): Содержат код, который Копируется в исполняемый файл во время компиляции (линковки). В результате, исполняемый файл становится самодостаточным и не требует наличия статических библиотек во время выполнения...