Here's the code.   #include <stdio.h> #include "usr/include/SDL/SDL.h" SDL_Surface *screen; SDL_Event event; bool done = false; int main(void) { SDL_Init(SDL_INIT_VIDEO); SDL_WM_SetCaption("\"Hello, World!\"", "\"Hello, World!\""); screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE); while(!done) {   SDL_Flip(screen);   if(event.type == SDL_QUIT)   {    done = true;   } } SDL_Quit(); return 0; }   This next one is from the manual.   #include "usr/include/SDL/SDL.h"   /* All SDL App's need this */ #include <stdio.h> int main() {      printf("Initializing SDL.\n");      /* Initialize defaults, Video and Audio */     if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) { 	    printf("Could not initialize SDL: %s.\n", SDL_GetError()); 	    exit(-1);     }     printf("SDL initialized.\n");     printf("Quiting SDL.\n");      /* Shutdown all subsystems */     SDL_Quit();      printf("Quiting....\n");     exit(0); }   Then the compiler output for the first one is   samgj@samgj:~/sdltest$ g++ sdltest.c -o sdltest /tmp/ccaCl8C5.o: In function `main': sdltest.c:(.text+0x11): undefined reference to `SDL_Init' sdltest.c:(.text+0x25): undefined reference to `SDL_WM_SetCaption' sdltest.c:(.text+0x49): undefined reference to `SDL_SetVideoMode' sdltest.c:(.text+0x5d): undefined reference to `SDL_Flip' sdltest.c:(.text+0x82): undefined reference to `SDL_Quit' collect2: ld returned 1 exit status  But then this program compiles fine.   #include "usr/include/SDL/SDL.h" #include <stdio.h> int main { printf("Hello, World!"); return 0; }  I use Debian 6.0.4 which had sdl and sdl-dev instaled automatically. In my subdirectory I have the header files from the SDL website that's what '#include "usr/include/SDL/SDL.h"'