title: Unable to link to SDL2 functions using MinGW
body: <p>I'm relatively new to programming and I've decided to give SDL a try, but I'm a bit stuck. I haven't been able to build the project in codeblocks and I get 'undefined reference' to all SDL functions. I've seen a lot of similar questions here, but none of the solutions seems to help. I've already added the \include\SDL2 and the \lib folders to search directories, I've added SDL2Main and SDL2 to link libraries in linker options, I've even added -mwindows to other linker options. Also, I tried linking against the 64-bit version as well, but things got even worse.</p>
  
  <p>Here's my source code, pretty much copied straight out of the tutorial I started:</p>
  
  <pre><code>#include &lt;SDL.h&gt;
  SDL_Window* g_pWindow = 0;
  SDL_Renderer* g_pRenderer = 0;
  int main(int argc, char* args[])
      {
          // initialize SDL
      if(SDL_Init(SDL_INIT_EVERYTHING) &gt;= 0)
      {
      // if succeeded create our window
          g_pWindow = SDL_CreateWindow("Chapter 1: Setting up SDL",
          SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
          640, 480,
          SDL_WINDOW_SHOWN);
          // if the window creation succeeded create our renderer
          if(g_pWindow != 0)
          {
              g_pRenderer = SDL_CreateRenderer(g_pWindow, -1, 0);
          }
      }
      else
      {
          return 1; // sdl could not initialize
      }
      // everything succeeded lets draw the window
      // set to black // This function expects Red, Green, Blue and
      // Alpha as color values
      SDL_SetRenderDrawColor(g_pRenderer, 0, 0, 0, 255);
      // clear the window to black
      SDL_RenderClear(g_pRenderer);
      // show the window
      SDL_RenderPresent(g_pRenderer);
      // set a delay before quitting
      SDL_Delay(5000);
      // clean up SDL
      SDL_Quit();
          return 0;
  }
  </code></pre>
  
  <p>And here's the build log:</p>
  
  <pre><code>mingw32-g++.exe -LC:\dev\sdl\SDL2-2.0.1\x86_64-w64-mingw32\lib  -o bin\Debug\GeometryProject.exe obj\Debug\main.o   -mwindows  C:\MinGW\lib\libmingw32.a C:\dev\sdl\SDL2-2.0.1\x86_64-w64-mingw32\lib\libSDL2main.a C:\dev\sdl\SDL2-2.0.1\x86_64-w64-mingw32\lib\libSDL2.a 
  obj\Debug\main.o: In function `SDL_main':
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:7: undefined reference to `SDL_Init'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:13: undefined reference to `SDL_CreateWindow'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:17: undefined reference to `SDL_CreateRenderer'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:27: undefined reference to `SDL_SetRenderDrawColor'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:29: undefined reference to `SDL_RenderClear'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:31: undefined reference to `SDL_RenderPresent'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:33: undefined reference to `SDL_Delay'
  C:/Users/Kris948/Desktop/ProjectsUni/GeometryProject/main.cpp:35: undefined reference to `SDL_Quit'
  C:\MinGW\lib\libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
  collect2.exe: error: ld returned 1 exit status
  Process terminated with status 1 (0 minutes, 0 seconds)
  9 errors, 0 warnings (0 minutes, 0 seconds)
  </code></pre>
  
  <p>Is there anything else I could try? I really would like to get this running and would appreciate any help.</p>