Usually if one doesn't understand a certain topic, one would go and find some resources on said topic, instead of waiting for others to write all their knowledge again and again.
Object files are compiled but not yet linked together code parts.
Static libraries are essentially just an archive of object files.
If you link your application against a static libraries, the library object files will get linked at the same time as your own application object files.
Shared libraries are already fully linked binaries. On Windows you however need an import library that tells the compiler what to expect in the DLL (= shared library).
So with SFML you get:
sfml-XYZ-s.lib = static release library
sfml-XYZ-s-d.lib = static debug library
sfml-XYZ.lib = import release library
sfml-XYZ.dll = dynamic release library
sfml-XYZ-d.lib = import debug library
sfml-XYZ-d.dll = dynamic debug library
I hope that cleared it up a bit. If you still have no idea about this whole compiling and linking stuff, then I suggest you reading some more information, maybe start off with
this?
Note: For GCC based compilers (e.g. MinGW) (and NOT Visual Studio), the file endings for static and import libraries are *.a