Che cos'è un file .so?


45

Sto riscontrando problemi con Flash sotto Ubuntu e stavo per provare ad eseguire l'aggiornamento alla versione Alpha di Flash 10.1.

Il problema è che è arrivato come file .so e non riesco a trovare alcuna informazione su cosa sia.


1
Altri poster hanno già risposto alla tua domanda, quindi non ho senso aggiungere un altro testo sostanzialmente identico. Attiro la tua attenzione su questo bug ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ) poiché forse i tuoi sintomi sono simili e ti piacerebbe dare un'occhiata lì.
mac,

1
Quasi dimenticato: nella descrizione del bug collegata sopra, c'è anche una soluzione alternativa che risolve il problema (commento # 16). Buona fortuna!
mac,

Risposte:


60

Un file .so è un file di libreria compilato. Sta per "oggetto condiviso" ed è analogo a una DLL di Windows.

Spesso, i file del pacchetto li posizionano in / lib o / usr / lib o in luoghi simili quando vengono installati. Se estrai un file .so in un percorso nel tuo $ LD_LIBRARY_PATH, un programma che richiede la libreria dovrebbe essere in grado di usarlo.

Idealmente, leggi la documentazione di accompagnamento per assicurarti che sia nella posizione giusta.

Se si esegue un comando come locate adobe-flashplugindal Terminale, è possibile che vengano visualizzate alcune librerie con nomi simili esistenti.


2
A meno che Ubuntu non esegua le cose in modo completamente diverso dagli altri linker dinamici Linux, il linker dinamico non cerca il percorso ($ PATH), ma cerca piuttosto un insieme fisso di percorsi e le directory specificate in $ LD_LIBRARY_PATH. Vedi le pagine man per ld.so e ldconfig per maggiori dettagli.
Chris Cleeland,

Sembra giusto - grazie ... $ LD_LIBRARY_PATH non $ PATH. :-)
Andrew Flanagan,

1
/ usr / lib e / lib sono molto più comuni di / var / lib. In realtà, è piuttosto raro inserire una libreria in / var / lib.
qedi,

Scusa, ero di fretta. :-) Lo correggerò ...
Andrew Flanagan,

Ok .. Immaginiamo di avere un file .so ... Cosa mi serve per "usarlo"?
Pitto

10

Esistono due tipi di libreria Linux C / C ++ che possono essere creati. Quelle sono librerie statiche (.a) e librerie di oggetti shard collegate dinamicamente (.so)

Quando si tratta di (.so) , esiste solo una forma di questa libreria ma può essere usata in due modi.

1) Collegamento dinamico in fase di esecuzione ma staticamente consapevole. Le librerie devono essere disponibili durante la fase di compilazione / collegamento. Gli oggetti condivisi non sono inclusi nel componente eseguibile ma sono legati all'esecuzione.

2) Carico / scaricato dinamicamente e collegato durante l'esecuzione (ad es. Plug-in del browser) utilizzando le funzioni di sistema del caricatore a collegamento dinamico.

Normalmente i file del pacchetto inseriranno i file ".so" in / lib o / usr / lib durante l'installazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.