Мне нужно немного разъяснений в этой области. Я чувствую, что термины Static library
& Dynamic Library
неверны.
- lib1.o + lib2.o + lib3.o -> "LinkerOutputFile" (исполняемый файл или библиотека).
Если этот «LinkerOutputFile» содержит код всех файлов lib1.o, lib2.o, lib3.o, тогда говорится, что «LinkerOutputFile» является связующим звеном «LinkerOutputFile» (исполняемый файл или библиотека). (Или)
Если «LinkerOutputFile» просто содержит ссылки и другую информацию о на lib1.o, lib2.o, lib3.o без кода этих файлов lib * .o. Затем он сказал, что "LinkerOutputFile" динамически связан.
Как это делает файлы lib * .o статической или динамической библиотекой? Это просто библиотечные файлы.
Или это то, что LinkerOutputFile - это библиотека, а не исполняемый файл, в зависимости от того, является ли она статически связанной или динамически связанной, называемой статической библиотекой или динамической библиотекой. Правда или Ложь?
Я знаю, что я не прав, потому что я знаю, что
На большинстве платформ в стиле Unix
расширения
- .a для статических библиотек (архивов) и
- .so для разделяемых библиотек.
в Windows:
- .dll обозначает общую библиотеку
- .lib обозначает статическую или импортируемую библиотеку.
Но не могу понять, где я неправ. Также, пожалуйста, скажите мне, как Static library
& Dynamic Library
внутренне отличаются.
Кроме того, это из спецификации ABI:
В этой главе описывается объектный файл
формат, называемый ELF (Исполняемый и
Формат ссылок). Есть три основных
типы объектных файлов.
A перемещаемый файл содержит код и данные
подходит для связи с другим объектом
файлы для создания исполняемого файла или
общий объектный файл.
исполняемый файл содержит программу
подходит для исполнения; файл
указывает, как exec (BA_OS) создает
образ процесса программы.
A общий объектный файл содержит код и
данные, подходящие для связывания в двух
контексты. Во-первых, редактор ссылок [см.
ld (BA_OS)] обрабатывает общий объект
файл с другими перемещаемыми и общими
объектные файлы для создания другого объекта
файл. Во-вторых, динамический компоновщик
объединяет его с исполняемым файлом
и другие общие объекты для создания
Изображение процесса.
«общий объектный файл» - это другие слова для обозначения динамической библиотеки (имеет расширение * .so). Но как насчет «Статической библиотеки»? Это даже не упоминает об этом.
Есть ли разница между "Перемещаемым" и "Статической библиотекой" и "Библиотекой импорта"? Пожалуйста, уточните мне внутреннюю структуру.