Respostas:
Para gerar uma biblioteca compartilhada, você precisa primeiro compilar seu código C com o -fPICsinalizador (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 -Wallpara obter todos os avisos e -gobter informações de depuração aos seus gcccomandos. - Basile Starynkevitch
gcc -shared -o libhello.so -fPIC hello.cpara fazê-lo em uma etapa.
-Wallpara obter todos os avisos e -gobter informações de depuração aos seus gcccomandos.
.oarquivo @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.oum arquivo de objeto, será gerado. Resp, então você pode usar esse abc.oarquivo para criar um .soarquivo. Para criar tantos arquivos, tudo o que você precisa é de um código c correto, escrito em um .carquivo. PS: Apenas para esclarecer sua dúvida no comentário.