Библиотеки архивов (.a) статически связаны, когда вы скомпилируете свою программу с опцией -c в gcc. Итак, если есть какие-либо изменения в библиотеке, вам нужно снова скомпилировать и создать свой код.
Преимущество библиотеки .so(shared object) над .a заключается в том, что они связаны во время выполнения, т.е. после создания вашего файла .o файла в gcc. Итак, если есть какие-либо изменения в .so файле, вам не нужно перекомпилировать вашу основную программу. Но убедитесь, что ваша основная программа связана с новым .so файлом с помощью команды ln.
Это поможет вам создать файлы .so. http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Надеюсь, что это поможет.
pic
(независимый от позиции код)?
.a - статические библиотеки. Если вы используете код, хранящийся внутри них, он берется из них и встроен в ваш собственный двоичный файл. В Visual Studio это были бы .lib файлы.
.so - динамические библиотеки. Если вы используете код, хранящийся внутри них, он не берется и не внедряется в ваш собственный двоичный файл. Вместо этого он просто ссылается, поэтому двоичный файл будет зависеть от них, а код из файла будет добавлен/загружен во время выполнения. В Visual Studio/Windows это были бы DLL файлы (с небольшими .lib файлами, содержащими ссылку).
.a файлы обычно представляют собой библиотеки, которые статически связаны (или, точнее, архивы), и
.so - динамически связанные библиотеки.
Чтобы сделать порт, вам понадобится исходный код, который был скомпилирован для их создания, или эквивалентные файлы на вашей машине AIX.
Они используются на этапе связывания. .a
файлы статически связаны, а файлы .so
связаны с сортировкой, поэтому библиотека нужна всякий раз, когда вы запускаете exe.
Вы можете найти, где они хранятся, просмотрев любой из каталогов lib... /usr/lib
и /lib
имеют большинство из них, а также есть переменная среды LIBRARY_PATH
.
Википедия - достойный источник этой информации.
Чтобы узнать о файлах статических библиотек, таких как .a читать Статический libarary
Чтобы узнать об общих библиотечных файлах, например .so прочитать Library_ (вычисления) #Shared_libraries На этой странице также есть полезная информация в Именование файлов.
a
s
Харедo
▪ Таблица