Note that there are some explanatory texts on larger screens.

plurals
  1. POCan't get GLFW to link
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload