¿Que es un archivo .so?


45

Tengo problemas con Flash en ubuntu e iba a intentar actualizar a la versión Alpha de Flash 10.1.

El problema es que vino como un archivo .so, y no puedo encontrar ninguna información sobre qué es esto.


1
Otro póster ya ha respondido su pregunta, por lo que no tiene sentido agregar otro texto sustancialmente idéntico. Sin embargo, atraigo su atención sobre este error ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ) ya que quizás sus síntomas son similares y le gustaría echar un vistazo allí.
mac

1
Casi lo olvido: en la descripción del error vinculada anteriormente, también hay una solución que resuelve el problema (comentario # 16). ¡La mejor de las suertes!
mac

Respuestas:


60

Un archivo .so es un archivo de biblioteca compilado. Significa "Objeto compartido" y es análogo a una DLL de Windows.

A menudo, los archivos de paquete los colocarán en / lib o / usr / lib o en algún lugar similar cuando estén instalados. Si extrae un archivo .so a una ubicación en su $ LD_LIBRARY_PATH, un programa que requiera la biblioteca debería poder usarlo.

Idealmente, lea la documentación adjunta para asegurarse de que esté en la ubicación correcta.

Si ejecuta un comando como locate adobe-flashplugindesde la Terminal, puede ver algunas bibliotecas existentes con nombres similares.


2
A menos que Ubuntu haga las cosas de manera completamente diferente a otros enlazadores dinámicos de Linux, el enlazador dinámico no busca la ruta ($ PATH), sino que busca un conjunto fijo de rutas, así como los directorios especificados en $ LD_LIBRARY_PATH. Consulte las páginas de manual de ld.so y ldconfig para obtener más detalles.
Chris Cleeland el

Eso suena bien, gracias ... $ LD_LIBRARY_PATH no $ PATH. :-)
Andrew Flanagan el

1
/ usr / lib y / lib son mucho más comunes que / var / lib. En realidad, es bastante raro poner una biblioteca en / var / lib.
qedi

Lo siento, estaba apurado. :-) Lo corregiré ...
Andrew Flanagan

Ok .. Imaginemos que tengo un archivo .so ... ¿Qué necesito para "usarlo"?
Pitto

10

Hay dos tipos de bibliotecas de Linux C / C ++ que se pueden crear. Esas son las bibliotecas estáticas (.a) y las bibliotecas de objetos de fragmentos vinculados dinámicamente (.so)

Cuando se trata de (.so) , solo hay una forma de esta biblioteca, pero se puede usar de dos maneras.

1) Vinculado dinámicamente en tiempo de ejecución pero estáticamente consciente. Las bibliotecas deben estar disponibles durante la fase de compilación / enlace. Los objetos compartidos no están incluidos en el componente ejecutable pero están vinculados a la ejecución.

2) Cargado / descargado dinámicamente y vinculado durante la ejecución (es decir, el complemento del navegador) utilizando las funciones del sistema del cargador de enlace dinámico.

Normalmente, los archivos de paquete colocarán archivos ".so" en / lib o / usr / lib durante la instalación.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.