Don't use surfaces, SDL2_image lets you create a texture directly. This is missing the graphic files that the code seeks to load so it will not run.
This also adds a static lib part to DoorKeeper that will only contain helper functions.