SDL.dll contains implementations of all the functions that you use from SDL, such as SDL_Init() and SDL_SetVideoMode() . It is linked dynamically to allow the library to be replaced with a newer version without compromising compatibility with existing applications. The SDL interface does not change almost as often as the implementation. Dynamic libraries provide a decoupling between an interface and an implementation due to what is required to dynamically load them: search for a file, load it, complain if it is not available, etc.
The application is more modular using dynamic libraries, and the executable will remain small. You can link statically with the SDL, under what circumstances the size of the executable file will include the (modest) size of the SDL library, and to upgrade to a newer version of SDL you will need to recompile your application.
source share