Що таке файл .so?


45

У мене виникли проблеми з Flash під ubuntu, і я збирався спробувати перейти до альфа-версії Flash 10.1.

Проблема полягає в тому, що він з'явився у вигляді файлу .so, і я не можу знайти інформацію про те, що це таке.


1
Інші афіші вже відповіли на ваше запитання, тому мені немає сенсу додавати ще один фактично однаковий текст. Хоча я привертаю вашу увагу до цієї помилки ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ), оскільки, можливо, ваші симптоми схожі, і ви хотіли б заглянути там.
mac

1
Майже забули: в описі помилки, зв'язаному вище, також є вирішення проблеми, яке вирішує проблему (коментар №16). Удачі!
mac

Відповіді:


60

Файл .so - це зібраний файл бібліотеки. Він розшифровується як "Спільний об'єкт" і є аналогом Windows DLL.

Часто файли пакунків містять їх під / lib або / usr / lib або в іншому місці, подібному під час їх встановлення. Якщо ви витягнете файл .so до місця у вашому $ LD_LIBRARY_PATH, програма, для якої потрібна бібліотека, повинна мати можливість його використовувати.

В ідеалі прочитайте супровідну документацію, щоб переконатися, що вона знаходиться в потрібному місці.

Якщо ви запускаєте команду типу locate adobe-flashpluginTerminal, ви можете побачити деякі існуючі бібліотеки з аналогічним назвою.


2
Якщо Ubuntu не робить щось зовсім інакше, ніж інші динамічні лінкери Linux, динамічний лінкер не шукає шлях ($ PATH), а шукає фіксований набір шляхів, а також каталогів, визначених у $ LD_LIBRARY_PATH. Докладніші відомості див. На сторінках man для ld.so та ldconfig.
Кріс Кліленд

Це звучить правильно - дякую ... $ LD_LIBRARY_PATH не $ PATH. :-)
Андрій Фланаган

1
/ usr / lib та / lib набагато частіше, ніж / var / lib. Насправді досить рідко можна розмістити бібліотеку в / var / lib.
qedi

Вибачте - поспішав. :-) Я виправлю це ...
Ендрю Фланаган

Добре .. Давайте уявимо, що у мене є .so файл ... Що мені потрібно для його використання?
Пітто

10

Існує два типи бібліотеки C / C ++ Linux, які можна створити. Це статичні бібліотеки (.a) і динамічно пов'язані бібліотеки об’єктів фрагментів (.so)

Що стосується (.so) , то існує лише одна форма цієї бібліотеки, але її можна використовувати двома способами.

1) Динамічно пов'язаний під час виконання, але статично усвідомлений. Бібліотеки повинні бути доступними на етапі компіляції / посилання. Спільні об'єкти не включаються у виконуваний компонент, але прив’язані до виконання.

2) Динамічно завантажені / вивантажені та пов'язані під час виконання (тобто підключення браузера) з використанням динамічних функцій системи завантажувача завантажувача.

Зазвичай файли пакунків містять файли ".so" в / lib або / usr / lib при установці.


3

Це динамічно пов'язана бібліотека спільних об'єктів, аналогічна файлу .dll в Windows.

Ось кілька публікацій про встановлення Flash 10 в Ubuntu x64 та x86:

Переконайтесь, що ви видалили будь-які попередні версії Flash для встановлення 10.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.