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