Risposte:
Per generare una libreria condivisa devi prima compilare il tuo codice C con il -fPIC
flag (posizione codice indipendente).
gcc -c -fPIC hello.c -o hello.o
Questo genererà un file oggetto (.o), ora lo prendi e crei il file .so:
gcc hello.o -shared -o libhello.so
MODIFICA : Suggerimenti dai commenti:
Puoi usare
gcc -shared -o libhello.so -fPIC hello.c
per farlo in un solo passaggio. - Jonathan Leffler
Suggerisco anche di aggiungere -Wall
per ottenere tutti gli avvisi e -g
ottenere informazioni di debug ai gcc
comandi. - Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
per farlo in un solo passaggio.
-Wall
per ottenere tutti gli avvisi e -g
ottenere informazioni di debug ai gcc
comandi.
.o
file @sashoalm è fondamentalmente un file oggetto per il file sorgente, prima di collegarli insieme, nell'eseguibile finale. Quindi quando si esegue gcc -o abc.c abc.o
un file oggetto verrebbe generato. Quindi è possibile utilizzare questo abc.o
file per creare il .so
file. Per creare così tanti file, tutto ciò che serve è un codice c corretto scritto in un .c
file. PS: solo per chiarire i tuoi dubbi nel commento.