Well, do you want to provide your framework as a "static" library (
.a file) or as a "shared" library (DLL or
.so file) ???
As far as "static" libraries are concerned, they are just archives (similar to ZIP files) containing a bunch of pre-compiled object (
.o) files. Merging two or more "static" libraries into one is possible, just like you can merge the contents of two ZIP files into one.
See here for details:
https://stackoverflow.com/a/23621751
Though I don't think this is a very good idea to merge third-party dependencies (e.g. SDL) into
your "static" library. For example, the user won't be able to update the the third-party dependencies independently from
your framework. What if SDL releases in important security fix? The user would depend on
you to provide an updated framework release, rather than simply updating the SDL library...
Things are more complicated if you want to provide your framework as a "shared" library (DLL file). Sure, when building your framework DLL file, you could link the third-party dependencies as "static" libraries into your DLL file. This way, you create a sort of "all in one" DLL file and the third-party dependencies won't appear as separate DLL files. But: This will only satisfy dependencies on the third-party libraries
within your framework code (DLL file). If the "main" program also wants to call the third-party library
directly (not only through your framework), then they won't be able to do this with your "all in one" DLL – unless you provide "wrapper" functions that pass through the calls.
Note: While you
can link a "static" library into a "shared" one (DLL file), merging multiple "shared" libraries (DLL files) into one is
not (easily) possible. If you link a "shared" library against another "shared" library, then
both "shared" libraries will still be required at runtime!