title: glfw3 compiling undefined references
body: <p>I have a problem with compiling my program which uses glfw3 library.</p>
  
  <p>I'm getting list of errors of undefined references when trying to compile with make but my classes are compiled into .o files, only final executable file is not created.</p>
  
  <p>stdout:</p>
  
  <pre><code>g++ -Wall -g -c main.cpp -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi 
  
  g++ -Wall -g -c error.cpp -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
  
  g++ -Wall -g -c sWindow.cpp -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi 
  
  g++ -Wall -g -o ecl main.o error.o sWindow.o -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
  </code></pre>
  
  <p>stderr:</p>
  
  <pre><code>/usr/local/lib/libglfw3.a(context.c.o): In function `parseGLVersion':
  context.c:(.text+0x53): undefined reference to `glGetString'
  /usr/local/lib/libglfw3.a(context.c.o): In function `_glfwRefreshContextAttribs':
  context.c:(.text+0x907): undefined reference to `glGetIntegerv'
  context.c:(.text+0x98a): undefined reference to `glGetIntegerv'
  context.c:(.text+0x9df): undefined reference to `glGetIntegerv'
  context.c:(.text+0xa32): undefined reference to `glGetIntegerv'
  /usr/local/lib/libglfw3.a(context.c.o): In function `glfwExtensionSupported':
  context.c:(.text+0xd59): undefined reference to `glGetString'
  context.c:(.text+0xd93): undefined reference to `glGetIntegerv'
  /usr/local/lib/libglfw3.a(window.c.o): In function `glfwCreateWindow':
  window.c:(.text+0x6f8): undefined reference to `glClear'
  /usr/local/lib/libglfw3.a(x11_time.c.o): In function `getRawTime':
  x11_time.c:(.text+0x20): undefined reference to `clock_gettime'
  /usr/local/lib/libglfw3.a(x11_time.c.o): In function `_glfwInitTimer':
  x11_time.c:(.text+0x72): undefined reference to `clock_gettime'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `getFBConfigAttrib':
  glx_context.c:(.text+0x51): undefined reference to `glXGetFBConfigAttrib'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `chooseFBConfig':
  glx_context.c:(.text+0x7e): undefined reference to `glXGetClientString'
  glx_context.c:(.text+0x104): undefined reference to `glXGetFBConfigs'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `createLegacyContext':
  glx_context.c:(.text+0x43f): undefined reference to `glXCreateNewContext'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwInitContextAPI':
  glx_context.c:(.text+0x48f): undefined reference to `glXQueryExtension'
  glx_context.c:(.text+0x4ca): undefined reference to `glXQueryVersion'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwCreateContext':
  glx_context.c:(.text+0x791): undefined reference to `glXGetVisualFromFBConfig'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwDestroyContext':
  glx_context.c:(.text+0xd09): undefined reference to `glXDestroyContext'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwPlatformMakeContextCurrent':
  glx_context.c:(.text+0xd55): undefined reference to `glXMakeCurrent'
  glx_context.c:(.text+0xd70): undefined reference to `glXMakeCurrent'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwPlatformSwapBuffers':
  glx_context.c:(.text+0xdc2): undefined reference to `glXSwapBuffers'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwPlatformExtensionSupported':
  glx_context.c:(.text+0xe69): undefined reference to `glXQueryExtensionsString'
  /usr/local/lib/libglfw3.a(glx_context.c.o): In function `_glfwPlatformGetProcAddress':
  glx_context.c:(.text+0xeb1): undefined reference to `glXGetProcAddressARB'
  collect2: ld returned 1 exit status
  make: *** [ecl] Error 1
  </code></pre>
  
  <p>this is my makefile:</p>
  
  <pre><code>CXX = g++
  CXXFLAGS = -Wall -g
  LIBS = -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
  DEPENDENCIES = main.o error.o sWindow.o
  
  # ****************************************************
  # Targets needed to bring the executable up to date
  
  ecl: $(DEPENDENCIES)
      $(CXX) $(CXXFLAGS) -o ecl $(DEPENDENCIES) $(LIBS)
  
  main.o: main.cpp
      $(CXX) $(CXXFLAGS) -c main.cpp $(LIBS)
  
  error.o: error.cpp
      $(CXX) $(CXXFLAGS) -c error.cpp $(LIBS)
  
  sWindow.o: sWindow.cpp
      $(CXX) $(CXXFLAGS) -c sWindow.cpp $(LIBS) 
  
  clean: 
      rm -f *.o main
      echo "Clean done"
  </code></pre>
  
  <p>Do you have any idea what causes this and how to fix it?</p>