Статическая библиотека и Динамическая библиотека: Путаница

Мне нужно немного разъяснений в этой области. Я чувствую, что условия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 расширения

 для статических библиотек (архивов) и.так для общих библиотек.

В Windows:

.dll указывает на общую библиотеку.lib указывает на статическую или импортную библиотеку.

Но не могу понять, где я не прав. Также скажите, пожалуйста, какStatic library & Dynamic Library внутренне разные.

Кроме того, это из спецификации ABI:

В этой главе описывается формат объектного файла, называемый ELF (исполняемый и связующий формат). Существует три основных типа объектных файлов.

A перемещаемый файл содержит код и данные, подходящие для связи с другими объектными файлами для создания исполняемого или общего объектного файла.

запускаемый файл содержит программу, подходящую для исполнения; файл указывает, как exec (BA_OS) создает образ процесса программы.

A общий объектный файл содержит код и данные, подходящие для связывания в двух контекстах. Сначала редактор ссылок [см. Ld (BA_OS)] обрабатывает общий объектный файл с другими перемещаемыми и общими объектными файлами, чтобы создать другой объектный файл. Во-вторых, динамический компоновщик объединяет его с исполняемым файлом и другими общими объектами для создания образа процесса.

«общий объектный файл» - это другие слова для обозначения динамической библиотеки (имеет расширение * .so). Но как насчет «Статической библиотеки»? Это даже не упоминает об этом.

Есть ли разница между «Перемещаемым» и «Статической библиотекой» и «Библиотекой импорта»? Пожалуйста, уточните мне внутреннюю структуру.

Ответы на вопрос(3)

Ваш ответ на вопрос