Hasta donde tengo entendido, son bibliotecas, pero ¿cuál es la diferencia entre las dos?
Comentarios
- Publicación relacionada – ¿Cuál ' es la diferencia entre .so, .la y .a biblioteca archivos?
Respuesta
 A .a El archivo es una biblioteca estática, mientras que un archivo .so es una biblioteca de objetos compartidos (dinámica) similar a una DLL en Windows. Hay información detallada sobre las diferencias entre los dos en   esta página  . 
Comentarios
-  .asolo se pueden incluir como parte de un programa durante la compilación..so' s pueden " importados " mientras se carga un programa.
- ¿Qué significa .a?
-  @hfrmobile La a significa  archivo  – una biblioteca estática es una colección de archivos de objetos creados con la utilidad ar. Más información aquí
Respuesta
A continuación, un archivo .a es un archivo «ar». No a diferencia de un archivo tar, almacena .o u objeto archivos, lo que permite extraerlos del archivo y vincularlos a un programa, entre otras cosas. Puede usar ar para almacenar otros archivos si lo desea.
Puede obtener una lista de los miembros de un archivo ar con el parámetro -t, por ejemplo:
ar -t /usr/lib/libc.a Un archivo .so es un archivo de «objeto compartido» y tiene mucha más información disponible para el vinculador para que los miembros puedan vincularse a un programa de carga lo más rápido posible.
Por ejemplo, intente:
objdump -T /lib/libc-2.11.1.so (o cualquier versión de libc.so que tenga en su directorio / lib). Tenga en cuenta que un archivo .so también podría contener un script de vinculación que lo dirija a encontrar el archivo en otro lugar, o use otra cosa.
Curiosamente, un archivo .so también puede ser un programa completo. Por ejemplo, intente ejecutar /lib/libc.so.6 . (Lamentablemente, esta última parte no parece funcionar en sistemas más modernos. No es que sea una gran pérdida.)
Comentarios
-  Typo . quiere escribir ar -t /usr/lib/libc.a. En realidad, el-no ' parece ser necesario en este caso. También/lib/libc.so.6.solo imprime algunos resultados. No ' no sé si lo llamaríafull fledged program.
- Es ' es un programa completo en el sentido de que tiene un símbolo principal para que el ejecutivo lo encuentre.
-  También puede ejecutar ldden .so ' s, y le mostrará qué otras bibliotecas utiliza. Static regresará con un mensaje que dice que ' no es una biblioteca dinámica.