gcc -s -shared -Wl,-soname, you may need to use -Wl,export-dynamic for reverse dependencies remember to use -Wl,-rpath for library client program during developement This will be used to link .o files into an executable.