Что такое файлы .a и .so? - PullRequest
       32

Что такое файлы .a и .so?

385 голосов
/ 21 марта 2012

В настоящее время я пытаюсь перенести приложение C на AIX и запутываюсь. Что такое файлы .a и .so и как они используются при сборке / запуске приложения?

Ответы [ 5 ]

437 голосов
/ 21 марта 2012

Архивные библиотеки (.a) статически связаны, т.е. когда вы компилируете свою программу с опцией -c в gcc.Итак, если в библиотеке есть какие-либо изменения, вам нужно снова скомпилировать и собрать код.

Преимущество .so (общего объекта) перед .a библиотекой заключается в том, что они связаны во время выполнения, то есть после создания опции .o file -o в gcc.Итак, если есть какие-либо изменения в .so файле, вам не нужно перекомпилировать основную программу.Но убедитесь, что ваша основная программа связана с новым файлом .so с помощью команды ln.

Это поможет вам создать файлы .so.http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

Надеюсь, это поможет.

194 голосов
/ 21 марта 2012

.a - статические библиотеки.Если вы используете код, хранящийся внутри них, он берется из них и встраивается в ваш собственный двоичный файлВ Visual Studio это были бы файлы .lib.

.so - это динамические библиотеки.Если вы используете код, хранящийся внутри них, он не будет взят и встроен в ваш собственный двоичный файл.Вместо этого на него просто ссылаются, поэтому двоичный файл будет зависеть от них, и код из файла будет добавлен / загружен во время выполнения.В Visual Studio / Windows это будут файлы .dll (с небольшими файлами .lib, содержащими информацию о ссылках).

10 голосов
/ 21 марта 2012

.a файлы обычно представляют собой библиотеки, которые статически связаны (или, точнее, архивы), и
.so динамически связанные библиотеки.

Для создания порта вам понадобится исходный код, скомпилированный для их создания, или эквивалентные файлы на вашем компьютере AIX.

8 голосов
/ 21 марта 2012

Они используются на этапе связывания.Файлы .a статически связаны, а файлы .so связаны, так что библиотека необходима при каждом запуске exe.

Вы можете найти, где они хранятся, взглянув на любой изКаталоги lib ... /usr/lib и /lib имеют большинство из них, а также есть переменная окружения LIBRARY_PATH.

1 голос
/ 28 сентября 2015

Википедия - достойный источник этой информации.

Чтобы узнать о файлах статической библиотеки, таких как .a, прочитайте Статическая библиотека

Чтобы узнать о файлах общей библиотеки, например.так что читайте Библиотека_ (вычисления) # Shared_libraries На этой странице также есть полезная информация в разделе Имена файлов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...