title: Can't get GLFW to link
body: <p>I am trying to compile the below test program:</p>
  
  <pre><code>#include &lt;GL/glfw.h&gt;
  
  int main(int argc, char** argv) {
      if(!glfwInit()) {
          return -1;
      }
  
      if(!glfwOpenWindow(640, 480, 8, 8, 8, 0, 24, 0, GLFW_WINDOW)) {
          return -1;
      }
  
      while(glfwGetWindowParam(GLFW_OPENED)) {
          glfwSwapBuffers();
      }
  
      return 0;
  }
  </code></pre>
  
  <p>but I always get <code>undefined reference</code> errors in regards to the GLFW functions.</p>
  
  <p>Below is my makefile:</p>
  
  <pre><code>CXX = clang++
  CXXFLAGS = -Wall -std=c++0x
  LDFLAGS = -lglfw
  
  OBJ_DIR = bin
  LIB_DIR = -L/usr/lib
  INC_DIR = -I/usr/include
  
  SOURCE = main.cpp
  OBJECTS = ${SOURCE:%.cpp=$(OBJ_DIR)/%.o}
  EXECUTABLE = hello
  
  all: init $(OBJECTS) $(EXECUTABLE)
  
  $(EXECUTABLE):
      $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LIB_DIR) -o $@ $(OBJECTS)
  
  $(OBJ_DIR)/%.o: %.cpp
      $(CXX) $(INC_DIR) -c $&lt; -o $@
  
  init:
      @mkdir -p "$(OBJ_DIR)"
  
  clean:
      @rm -rf $(OBJ_DIR) $(EXECUTABLE)
  </code></pre>
  
  <p>I definitely have <code>glfw.h</code> and <code>libglfw.a/.so</code> as when I run <code>locate glfw</code> I get:</p>
  
  <pre><code>:~$ locate glfw
  /usr/include/GL/glfw.h
  /usr/lib/libglfw.a
  /usr/lib/libglfw.so
  /usr/lib/libglfw.so.2
  /usr/lib/libglfw.so.2.6
  </code></pre>
  
  <p>The output of <code>nm /usr/lib/libglfw.a | grep glfwInit</code>:</p>
  
  <pre><code>:~$ nm /usr/lib/libglfw.a | grep glfwInit
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitialized
  0000000000000000 B _glfwInitialized
  0000000000000000 T glfwInit
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitialized
                   U _glfwInitJoysticks
                   U _glfwInitTimer
  00000000000000c0 T _glfwInitJoysticks
  0000000000000000 T _glfwInitTimer
  </code></pre>
  
  <p>and the verbose message from clang:</p>
  
  <pre><code>clang++ -I/usr/include -c main.cpp -o bin/main.o
  clang++ -Wall -std=c++0x -Wl --verbose -lglfw -lGL -lGLU -L/usr/lib -o hello bin/main.o
  Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)
  Target: x86_64-pc-linux-gnu
  Thread model: posix
  clang: warning: argument unused during compilation: '-std=c++0x'
   "/usr/bin/ld" -z relro --hash-style=gnu --as-needed --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o hello /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o -L/usr/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -L/lib/x86_64-linux-gnu -L/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -lglfw -lGL -lGLU bin/main.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.6/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o
  bin/main.o: In function `main':
  main.cpp:(.text+0x17): undefined reference to `glfwInit'
  main.cpp:(.text+0x76): undefined reference to `glfwOpenWindow'
  main.cpp:(.text+0x97): undefined reference to `glfwGetWindowParam'
  main.cpp:(.text+0xa7): undefined reference to `glfwSwapBuffers'
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  make: *** [hello] Error 1
  </code></pre>
  
  <p>It seems to not be finding the library?</p>