I'm dabbling with a project that requires a library that is either pre-installed or that is shipped. Specifically, PySDL2 and SDL2. I'd like to ship the SDL2 library rather than assuming that it is installed. Which got me thinking: how do these things tie in with one another? You've got your source code, which you can configure-make-install, you've got your runtime binaries and you've got your development libraries. How do you from source code to either? Why is it that runtime libraries don't need everything that's in development libraries to run? I understand why libraries exist, but I can't really find anything on the distinction, even though it appears to be an important one.