SO A
Conversão de arquivo

Converter SO para A

RESPOSTA RÁPIDA
É possível converter SO para A?
Sim - SO converte para A.

Compile os arquivos-fonte para arquivos de objeto .o com GCC ou Clang e, em seguida, agrupe-os com ar rcs libfoo.a *.o. Se a biblioteca fornecer um pacote -dev, instale-o com seu gerenciador de pacotes para obter o .a pré-compilado sem precisar compilar do código-fonte.

Também para A: O · LIB

Nesta página

Testado em macOS, Windows e Linux
Última verificação em Oct 2026

Mais conversores gratuitos

HEIC, PNG, WEBP, MP3 e mais - todas as ferramentas aqui são gratuitas.

Abrir a caixa de ferramentas

Por que converter SO para A?

Desenvolvedores substituem um .so compartilhado por um .a estático para produzir um binário independente que não dependa da presença do .so em tempo de execução - útil ao implantar em máquinas onde a biblioteca pode não estar instalada. Um .a é um arquivo no formato ar de arquivos de objeto compilados, enquanto um .so é um objeto compartilhado ELF totalmente vinculado; ambos são construídos a partir da mesma fonte em estágios diferentes.

Como converter SO para A

ar (binutils) OPEN-SOURCE

Compile os arquivos-fonte em arquivos de objeto (gcc -c -o foo.o foo.c) e execute ar rcs libfoo.a *.o para agrupá-los em um arquivo estático .a.

GCC / Clang OPEN-SOURCE

Execute ./configure --enable-static && make no diretório de origem da biblioteca para construir o .a junto com ou em vez do .so.

apt / dnf / pacman FREE

Instale o pacote -dev ou -static da biblioteca (ex: apt install libfoo-dev) para obter o .a pré-compilado sem compilar do código-fonte; arquivos estáticos são normalmente colocados em /usr/lib/.

Sobre estes formatos

Qualidade e o que observar

  • Um .so usa código independente de posição (compilado com -fPIC); misturar arquivos de objeto PIC em um .a vinculado a um executável não-PIE pode, às vezes, causar avisos do vinculador, mas geralmente funciona.
  • Números de versão em nomes de arquivos .so (ex: libssl.so.3.0.2) não têm equivalente em .a - bibliotecas estáticas não carregam um SONAME.
  • Se apenas o .so finalizado estiver disponível, sem código-fonte ou pacote, não existe um conversor binário - você deve obter ou compilar a biblioteca estática a partir do código-fonte.

Perguntas frequentes

Posso extrair arquivos de objeto de um `.so` como faço com um `.a`?
Não no caso geral. Os arquivos de objeto são mesclados e modificados durante a vinculação do .so; o comando ar x funciona em arquivos .a, não em arquivos .so.
Por que usar um `.a` em vez de um `.so`?
Um binário vinculado estaticamente inclui o código da biblioteca diretamente, portanto, ele roda em sistemas onde o .so não está instalado, o que simplifica a implantação em ambientes mínimos ou isolados.
Onde o `.a` estático vai parar após a instalação de um pacote `-dev`?
Normalmente em /usr/lib/x86_64-linux-gnu/libfoo.a no Debian/Ubuntu, ou no caminho de biblioteca equivalente em outras distribuições.