When you use static libraries, the libraries are compiled into the executable, increasing its size. When you change the libraries' code, you must recompile your program entirely. no dll's are needed in this case.
when you use dynamic libraries, the libraries are compiled into a .dll file.
when you update the libraries' code, you have to recompile only the libraries, and not your program entirely.
you should always use dynamic libraries, and provide the dll's files.
(appologies for my english, i'm French)