I didn&#x27;t look at the demo, but that list of dependencies is not reflective of SDL.<p>This is what ldd on my build of SDL looks like:<p><pre><code>    linux-vdso.so.1 =&gt;  (0x00007ffda33d9000)
    libm.so.6 =&gt; &#x2F;lib&#x2F;x86_64-linux-gnu&#x2F;libm.so.6 (0x00007ff1e4c51000)
    libdl.so.2 =&gt; &#x2F;lib&#x2F;x86_64-linux-gnu&#x2F;libdl.so.2 (0x00007ff1e4a4d000)
    libpthread.so.0 =&gt; &#x2F;lib&#x2F;x86_64-linux-gnu&#x2F;libpthread.so.0 (0x00007ff1e4830000)
    librt.so.1 =&gt; &#x2F;lib&#x2F;x86_64-linux-gnu&#x2F;librt.so.1 (0x00007ff1e4628000)
    libc.so.6 =&gt; &#x2F;lib&#x2F;x86_64-linux-gnu&#x2F;libc.so.6 (0x00007ff1e426a000)
    &#x2F;lib64&#x2F;ld-linux-x86-64.so.2 (0x00007ff1e527e000)
</code></pre>
SDL on Linux does a lot of dlopen detection at launch because it is so hard to know what kind of Linux environment you are running in at compile time. For example, you may have a X11 server, or you may be running completely on the command line without any window server. (It&#x27;s really cool being able to develop for Raspberry Pi Raspbian via SDL without X11 since RAM is so limited.)<p>So that list is not SDL&#x27;s contribution and that demo was just linking to a lot of things, most of which look unnecessary (and sloppy, though this also makes a case why people want header-only libraries because many people don&#x27;t want to think about this part). For example, why is a gui demo demo linking to FLAC and all the Ogg Vorbis libraries? SDL doesn&#x27;t use or depend on these either.