Certo che puoi. Dopo aver codato la tua libreria (messa in un file .c) la compili come shared object cosi:

cc -o libxxx.o -c libxxx.c

(-o determina il nome mentre -c che l'operazione di linking deve essere saltata).

Successivamente nei tuoi programmi devi includere l'header della libreria e compilare cosi:

cc -o prog prog.c libxxx.o

Se vuoi che il modulo venga riconosciuto automaticamente da ld (e quindi anche da gcc in fase di compilazione) trasformalo in un archivio (*.a) e successivamente updata ld.

bye