SO A
Conversión de archivos

Convertir SO a A

RESPUESTA RÁPIDA
¿Es posible convertir SO a A?
Sí - SO se convierte a A.

Compile los archivos fuente a archivos objeto .o con GCC o Clang, luego agrúpelos con ar rcs libfoo.a *.o. Si la biblioteca ofrece un paquete -dev, instálelo con su gestor de paquetes para obtener el .a precompilado sin compilar desde el origen.

También a A: O · LIB

En esta página

Probado en macOS, Windows y Linux
Última verificación Oct 2026

Más convertidores gratuitos

HEIC, PNG, WEBP, MP3 y más - cada herramienta aquí es gratuita.

Abrir la caja de herramientas

¿Por qué convertir SO a A?

Los desarrolladores reemplazan un .so compartido por un .a estático para producir un binario autónomo que no dependa de la presencia del .so en tiempo de ejecución - útil al desplegar en máquinas donde la biblioteca podría no estar instalada. Un .a es un archivo en formato ar de archivos objeto compilados, mientras que un .so es un ELF compartido totalmente enlazado; ambos se construyen desde la misma fuente en diferentes etapas.

Cómo convertir SO a A

ar (binutils) OPEN-SOURCE

Compile los archivos fuente a archivos objeto (gcc -c -o foo.o foo.c), luego ejecute ar rcs libfoo.a *.o para agruparlos en un archivo estático .a.

GCC / Clang OPEN-SOURCE

Ejecute ./configure --enable-static && make en el directorio fuente de la biblioteca para compilar el .a junto con o en lugar del .so.

apt / dnf / pacman FREE

Instale el paquete -dev o -static de la biblioteca (por ejemplo, apt install libfoo-dev) para obtener el .a precompilado sin compilar desde el origen; los archivos estáticos suelen ubicarse en /usr/lib/.

Acerca de estos formatos

Calidad y qué observar

  • Un .so utiliza código independiente de la posición (compilado con -fPIC); mezclar archivos objeto PIC en un .a enlazado en un ejecutable no-PIE a veces puede causar advertencias del enlazador, pero generalmente funciona.
  • Los números de versión en los nombres de archivo .so (por ejemplo, libssl.so.3.0.2) no tienen equivalente en .a - las bibliotecas estáticas no llevan un SONAME.
  • Si solo está disponible el .so finalizado sin código fuente ni paquete, no existe un convertidor binario - debe obtener o compilar la biblioteca estática desde el origen.

Preguntas frecuentes

¿Puedo extraer archivos objeto de un `.so` como puedo hacerlo de un `.a`?
No en el caso general. Los archivos objeto se fusionan y modifican durante el enlace del .so; ar x funciona en archivos .a, no en archivos .so.
¿Por qué usar un `.a` en lugar de un `.so`?
Un binario enlazado estáticamente incluye el código de la biblioteca directamente, por lo que se ejecuta en sistemas donde el .so no está instalado, lo que simplifica el despliegue en entornos mínimos o aislados.
¿Dónde termina el `.a` estático después de instalar un paquete `-dev`?
Normalmente en /usr/lib/x86_64-linux-gnu/libfoo.a en Debian/Ubuntu, o en la ruta de biblioteca equivalente en otras distribuciones.