I got the latest version of SDL from their github (and picked the latest version for minGW, my compiler), and it fully compiles, but once I try to run the program, it says "This app can't run on your PC", and when I use the compatibility troubleshooter, all it does is add the flag "Windows compatibility mode: Windows 8", whitch doesen't fix it. Is this a problem with the flags I'm using when compiling, or is it something else? The compile command I'm using is:
g++ (name) -IPathtoInclude -LPathtolib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 -o (name)
I'm new to SDL, so dumb it down a bit if possible please.
Edit: I'm running Windows 10, with MinGW 4.3.5
The code I'm using is:
#include <SDL.h>
#include <stdio.h>
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main( int argc, char* args[] ) {
//The window we'll be rendering to
SDL_Window* window = NULL;
//The surface contained by the window
SDL_Surface* screenSurface = NULL;
//Initialize SDL
if (SDL_Init( SDL_INIT_VIDEO ) < 0) {
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
}
else {
//Create window
window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
if (window == NULL) {
printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
}
else {
//Get window surface
screenSurface = SDL_GetWindowSurface( window );
//Fill the surface white
SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );
//Update the surface
SDL_UpdateWindowSurface( window );
//Hack to get window to stay up
SDL_Event e; bool quit = false; while( quit == false ){ while( SDL_PollEvent( &e ) ){ if( e.type == SDL_QUIT ) quit = true; } }
}
}
//Destroy window
SDL_DestroyWindow(window);
//Quit SDL subsystems
SDL_Quit();
return 0;
}