SO A
Conversione file

Converti SO in A

RISPOSTA RAPIDA
È possibile convertire SO in A?
Sì - SO si converte in A.

Compila i file sorgente in file oggetto .o con GCC o Clang, quindi raggruppali con ar rcs libfoo.a *.o. Se la libreria fornisce un pacchetto -dev, installalo con il tuo gestore di pacchetti per ottenere il file .a precompilato senza compilare dai sorgenti.

Anche in A: O · LIB

In questa pagina

Testato su macOS, Windows e Linux
Ultima verifica Oct 2026

Altri convertitori gratuiti

HEIC, PNG, WEBP, MP3 e altri - ogni strumento qui è gratuito.

Apri la cassetta degli attrezzi

Perché convertire SO in A?

Gli sviluppatori sostituiscono un file .so condiviso con un file .a statico per produrre un binario autonomo che non dipenda dalla presenza del file .so al momento dell'esecuzione - utile quando si distribuisce su macchine dove la libreria potrebbe non essere installata. Un file .a è un archivio in formato ar di file oggetto compilati, mentre un file .so è un ELF shared object completamente collegato; entrambi sono costruiti dallo stesso sorgente in fasi diverse.

Come convertire SO in A

ar (binutils) OPEN-SOURCE

Compila i file sorgente in file oggetto (gcc -c -o foo.o foo.c), quindi esegui ar rcs libfoo.a *.o per raggrupparli in un archivio statico .a.

GCC / Clang OPEN-SOURCE

Esegui ./configure --enable-static && make nella directory sorgente della libreria per compilare il file .a insieme o al posto del file .so.

apt / dnf / pacman FREE

Installa il pacchetto -dev o -static della libreria (es. apt install libfoo-dev) per ottenere il file .a precompilato senza compilare dai sorgenti; gli archivi statici sono solitamente collocati in /usr/lib/.

Informazioni su questi formati

Qualità e a cosa prestare attenzione

  • Un file .so utilizza codice indipendente dalla posizione (compilato con -fPIC); mescolare file oggetto PIC in un file .a collegato a un eseguibile non-PIE può talvolta causare avvisi del linker ma solitamente funziona.
  • I numeri di versione nei nomi dei file .so (es. libssl.so.3.0.2) non hanno equivalenti nei file .a - le librerie statiche non portano un SONAME.
  • Se è disponibile solo il file .so finito senza sorgenti o pacchetti, non esiste un convertitore binario - è necessario ottenere o compilare la libreria statistica dai sorgenti.

Domande frequenti

Posso estrarre i file oggetto da un file `.so` come faccio con un file `.a`?
Non nel caso generale. I file oggetto vengono uniti e modificati durante il collegamento del file .so; ar x funziona sugli archivi .a, non sui file .so.
Perché usare un file `.a` invece di un file `.so`?
Un binario collegato staticamente include direttamente il codice della libreria, quindi viene eseguito su sistemi in cui il file .so non è installato, il che semplifica la distribuzione in ambienti minimi o isolati.
Dove finisce il file `.a` statico dopo l'installazione di un pacchetto `-dev`?
In genere in /usr/lib/x86_64-linux-gnu/libfoo.a su Debian/Ubuntu, o nel percorso di libreria equivalente su altre distribuzioni.