Respostas:
Para gerar uma biblioteca compartilhada, você precisa primeiro compilar seu código C com o -fPIC
sinalizador (código independente de posição).
gcc -c -fPIC hello.c -o hello.o
Isso irá gerar um arquivo de objeto (.o), agora você o pega e cria o arquivo .so:
gcc hello.o -shared -o libhello.so
EDIT : Sugestões dos comentários:
Você pode usar
gcc -shared -o libhello.so -fPIC hello.c
para fazer isso em uma etapa. - Jonathan Leffler
Também sugiro adicionar -Wall
para obter todos os avisos e -g
obter informações de depuração aos seus gcc
comandos. - Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.c
para fazê-lo em uma etapa.
-Wall
para obter todos os avisos e -g
obter informações de depuração aos seus gcc
comandos.
.o
arquivo @sashoalm é basicamente um arquivo de objeto para o arquivo de origem, antes de vinculá-los, no executável final. Então, quando você executa gcc -o abc.c abc.o
um arquivo de objeto, será gerado. Resp, então você pode usar esse abc.o
arquivo para criar um .so
arquivo. Para criar tantos arquivos, tudo o que você precisa é de um código c correto, escrito em um .c
arquivo. PS: Apenas para esclarecer sua dúvida no comentário.