История изменений
Исправление
gh0stwizard,
(текущая версия)
:
Полностью пост не читай, сарказмом всех удивляй.
Все, я все понял, что ты имеешь в виду. Допустим, надо выпустить либу без внешних зависимостей. Т.о. надо запихнуть в .so все объектные файлы, которые идут как зависимости. Чтобы это сделать насколько я знаю нужны либо *.a, либо *.o файлы, чтобы ld смог их скомпоновать в один наш файл .so. Да, тогда можно назвать этот процесс со «статической компиляцией».
Но это не относится к делу, т.к. это детали того как собрана библиотека, а не обсуждаемый вопрос линкование программы с библиотекой. Программу также можно собрать полностью со статической линковкой (через *.a файлы) и тогда для ее запуска не нужно ничего по сути, либо динамически через dlopen (plugin-architecture, ручная загрузка) или через ld.so (автоматическая загрузка).
В любом случае, при сборки программы или библиотеки т.о., чтобы не было никаких зависимостей при загрузке требуются *.o, либо *.a файлы. В противном случае, получим динамическую загрузку, что выражается другими словами в необходимости возить вместе с программой/библиотекой файлы-зависимости. В случае статической линковки, конечный файл не требует никаких доп. файлов, т.к. внутри содержится все необходимое.
Исходная версия
gh0stwizard,
:
Полностью пост не читай, сарказмом всех удивляй.
Все, я все понял, что ты имеешь в виду. Допустим, надо выпустить либу без внешних зависимостей. Т.о. надо запихнуть в .so все объектные файлы, которые идут как зависимости. Чтобы это сделать насколько я знаю нужны либо *.a, либо *.o файлы, чтобы ld смог их скомпоновать в один наш файл .so. Да, тогда можно назвать этот процесс со «статической компиляцией».
Но это не относится к делу, т.к. это детали того как собрана библиотека, а не обсуждаемый вопрос линкование программы с библиотекой. Программу также можно собрать полностью со статической линковкой (через *.a файлы) и тогда для ее запуска не нужно ничего по сути, либо динамически через dlopen (plugin-architecture, ручная загрузка) или через ld.so (автоматическая загрузка).
В любом случае, при сборки программы или библиотеки т.о., чтобы не было никаких зависимостей при загрузке требуются *.o, либо *.a файлы. В противном случае, получим динамическую загрузку, что выражается другими словами в необходимости возить вместе с программой/библиотекой файлы-зависимости. В случае статической линковки, конечный файл не требует никаких доп. файлов, т.к. внутри содержиться вообще все необходимое.