Уроки Cmake. Создание статической и динамической библиотек.
Немного о линковки статических библиотек
Базовые понятия, кратко Совершенно неожиданное открытие сделал недавно. Оказывается порядок появления файлов на входе линковщика важен, если мы говорим о линковки статических библиотек. Для того что бы понять почему так происходит, нужно понимать принцип работы линковщика. Объектные файлы как предоставляют(экспортируют) символы(имена функций, переменных), так и ожидают(импортируют) их. Рассмотрим небольшой пример: 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): Содержат код, который Копируется в исполняемый файл во время компиляции (линковки). В результате, исполняемый файл становится самодостаточным и не требует наличия статических библиотек во время выполнения...