(from a thread that got nuked)

I've just gotten SDL to work properly for a change, and was able to compile a basic SDL app with it.

Now I'm trying to get the hang of SDL itself, but this latest attempt at an SDL app doesn't want to compile. It gives me the following error:

Code:
SDL/lib/libSDLmain.a(SDL_win32_main.o.b)(.text+0x362): In function `console_main
':
/home/hercules/public_cvs/SDL/src/main/win32/SDL_win32_main.c:217: undefined ref
erence to `SDL_main'
And here's the program code:

Code:
//The headers
#include "SDL/SDL.h"
#include <string>
#include <cstdlib>
#include <iostream>

//The attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;

SDL_Surface *screen; //This pointer will reference the backbuffer
SDL_Surface *image;
SDL_Surface *temp;

int InitVideo(Uint32 flags = SDL_DOUBLEBUF | SDL_FULLSCREEN) {
  // Load SDL
  if (SDL_Init(SDL_INIT_VIDEO) != 0) {
    fprintf(stderr, "Unable to initialize SDL: %s\n", SDL_GetError());
    return false;
  }
  atexit(SDL_Quit); // Clean it up nicely :)

  // fullscreen can be toggled at run time :) any you might want to change the flags with params?
  //set the main screen to SCREEN_WIDTHxSCREEN_HEIGHT with a colour depth of 16:
  screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_DOUBLEBUF | SDL_FULLSCREEN);
  if (screen == NULL) {
    fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError());
    return false;
  }
  return true;
}


int main()
{

InitVideo();

temp = SDL_LoadBMP("hello_world.bmp");
if (temp == NULL) {
    printf("Unable to load bitmap: %s\n", SDL_GetError());
    return 1;
}
    
image = SDL_DisplayFormat(temp);
SDL_FreeSurface(temp);

SDL_Rect src, dest;
 
src.x = 0;
src.y = 0;
src.w = image->w;
src.h = image->h;
 
dest.x = 100;
dest.y = 100;
dest.w = image->w;
dest.h = image->h;
 
SDL_BlitSurface(image, &src, screen, &dest);

SDL_Flip(screen);
SDL_Delay(2500);

SDL_FreeSurface(image);

return 0;
}

Any help is again appreciated