0

SDL2/Box2D/OpenGL (および SDL2 拡張 SDL2_mixer と SDL2_ttf) を使用して、C++ で小さなゲームを作成しています。バージョン 1.0 に近づいているので、ゲームを配布することを考えていましたが、私のゲームに予期しない依存関係があることがわかりました。

SDL2_mixer が libglib を取り込むのに対し、SDL2 は libjson のような依存関係を取り込んでいるようです (なぜ SDL は json を必要とするのでしょうか?)。たとえば、SDL2_mixerではなくSDL2がlibFLACを取り込みます。libpng、libmad、libvorbis などの依存関係もあります。これらの機能を使用していないと確信しています。

自己完結型のゲームを失敗させるには、これらすべての依存関係を含める必要がありますか? 依存関係の数を最小限に抑える最善の方法は何ですか?

これは、ldd の完全な出力です。

linux-vdso.so.1 =>  (0x00007fff19ee0000)
libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f562ede5000)
libSDL2_ttf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2_ttf-2.0.so.0 (0x00007f562ebdd000)
libSDL2_mixer-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2_mixer-2.0.so.0 (0x00007f562e98d000)
libGL.so.1 => /usr/lib/nvidia-304/libGL.so.1 (0x00007f562e670000)
libGLEW.so.1.10 => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 (0x00007f562e3e4000)
libSOIL.so.1 => /usr/lib/libSOIL.so.1 (0x00007f562e1cc000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f562dec8000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f562dbc2000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f562d9ab000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f562d5e5000)
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f562d2f5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f562d0f0000)
libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007f562ceec000)
libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f562cca3000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f562c96d000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f562c75b000)
libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f562c551000)
libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f562c34d000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f562c13d000)
libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f562bf33000)
libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007f562bd2e000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f562bb28000)
libwayland-egl.so.1 => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007f562b926000)
libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f562b718000)
libwayland-cursor.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007f562b510000)
libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f562b2d6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f562b0b7000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f562aeaf000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f562ac0b000)
libmodplug.so.1 => /usr/lib/libmodplug.so.1 (0x00007f562a93c000)
libfluidsynth.so.1 => /usr/lib/x86_64-linux-gnu/libfluidsynth.so.1 (0x00007f562a666000)
libvorbisfile.so.3 => /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007f562a45e000)
libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f562a22c000)
libmad.so.0 => /usr/lib/x86_64-linux-gnu/libmad.so.0 (0x00007f562a00d000)
libnvidia-tls.so.304.117 => /usr/lib/nvidia-304/tls/libnvidia-tls.so.304.117 (0x00007f5629e0a000)
libnvidia-glcore.so.304.117 => /usr/lib/nvidia-304/libnvidia-glcore.so.304.117 (0x00007f5627a1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f562f116000)
libpulsecommon-4.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so (0x00007f56277b8000)
libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2 (0x00007f56275ac000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f5627367000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f5627148000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f5626f3d000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f5626d37000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f5626b2e000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5626915000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f56266ef000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f56263e6000)
libjack.so.0 => /usr/lib/x86_64-linux-gnu/libjack.so.0 (0x00007f562618d000)
libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f5625f25000)
libreadline.so.6 => /lib/x86_64-linux-gnu/libreadline.so.6 (0x00007f5625cde000)
libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f5625ab1000)
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007f56258a8000)
libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f562569d000)
libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f5625497000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f5625292000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f562508c000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f5624e4e000)
libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f562497e000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f5624755000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f562453a000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f562431f000) 
4

1 に答える 1