Construya el archivo .so del archivo .c usando la línea de comando gcc

Intento crear un proyecto de hello world para bibliotecas dinámicas de Linux (archivos .so). Entonces tengo un archivo hello.c:

#include  void hello() { printf("Hello world!\n"); } 

¿Cómo creo un archivo .so que exporte hello() , usando gcc desde la línea de comando?

Para generar una biblioteca compartida, primero debe comstackr su código C con el -fPIC (código de posición independiente).

 gcc -c -fPIC hello.c -o hello.o 

Esto generará un archivo de objeto (.o), ahora lo toma y crea el archivo .so:

 gcc hello.o -shared -o libhello.so 

EDIT : sugerencias de los comentarios:

Puedes usar

 gcc -shared -o libhello.so -fPIC hello.c 

para hacerlo en un solo paso. – Jonathan Leffler

También sugiero agregar -Wall para obtener todas las advertencias, y -g para obtener información de depuración, a sus comandos gcc . – Basile Starynkevitch