Search code examples
c++sdl-2software-distribution

Where do one start on deploying C++ code?


I just want to send some trivial SDL apps that I made to my non-coder friends. I googled a bit but all I get is more confusion. I genuinely don't know what I should do and where to start.

Some said I would need to use Make/Cmake kind of stuff, some said use some sort of installer like NSIS or INNO Setup, some said I just need to put all the libraries in the folder that I would send to end user.

I tried the last one on a fresh Windows VM, It asked for weird dlls that I don't know what they are ( libstdc++-6 & libgcc_s_seh-1 ). I installed them and put the folder anyway but then it kept asking for more.

I don't know what I should do. Do I need to use another program like CMake or NSIS? ( I am building project on Eclipse as C++ Managed Built ). If not, what kind of build options that I should use? Which libraries that I should add in the file? All I want is a starting point and a guide that I can follow.

Libraries that I use in the app:

stdio.h
math.h
time.h
string
SDL.h ( SDL2 )
SDL_image.h

( And yes, I provided SDL dlls in the file and managed to get a blank window app running on VM. But actaul app does not work. )

Any information regarding to the title is appreciated. Thanks beforehand.


Solution

  • Some said I would need to use Make/Cmake kind of stuff

    Those wouldn't change anything. The build systems just give you a convenient way to invoke the compiler.

    some sort of installer like NSIS or INNO Setup

    You can use those, but it's not fundamentally different from sending your friends an .exe + .dlls in an archive.

    I tried the last one on a fresh Windows VM, It asked for weird dlls that I don't know what they are ( libstdc++-6 & libgcc_s_seh-1 )

    You seem to use MinGW. Those .dlls are shipped with your compiler, and are in the same directory as g++.exe.

    They should be copied to the folder where your .exe is.

    it kept asking for more

    It should only ask for some of the .dlls shipped with the compiler, or for .dlls of the libraries you use (SDL2.dll).


    As mentioned in the comments, an alternative to copying the .dlls is static linking, i.e. embedding libraries directly into the .exe.