Commençons par faire une librairie statique. On compile notre objet.

~$ gcc -c foo.c -o foo.o

Puis on génère notre librairie statique

~$ ar rcs libfoo.a foo.o

Maintenant, pour une librairie dynamique. On compile cette fois notre objet avec l'option -fPIC pour signaler un Position Independant Code.

~$ gcc -fPIC -c bar.c -o bar.o

Enfin, on génère notre librairie dynamique

~$ gcc -shared -Wl,-soname,libbar.so.1 -o libbar.so.1.0.1  bar.o

Maintenant, je peux enfin oublier en toute sérénité. ;)