无法链接GLFW3:未定义的引用

时间:2014-03-27 18:11:38

标签: c++ c++11 g++ undefined-reference glfw

我之前已经意识到类似的东西(glfw3 compiling undefined references),但我仍然无法让它工作。欢迎任何帮助!

以下是运行 make 时的编译器输出:

  

g ++ -std = c ++ 11 -Wall -Wextra -Werror -pedantic-errors -I / usr / local / include -c -o Main.o Main.cpp

     

g ++ -std = c ++ 11 -Wall -Wextra -Werror -pedantic-errors -I / usr / local / include -L / usr / local / lib -lglfw3 -lGL Main.o -o modernogl

     

Main.o:在函数`main':

     

Main.cpp :(。text + 0x9):对'glfwInit'

的未定义引用      

Main.cpp :(。text + 0x3b):对'glfwCreateWindow'

的未定义引用      

Main.cpp :(。text + 0x4b):对'glfwTerminate'

的未定义引用      

Main.cpp :(。text + 0x5e):未定义对`glfwMakeContextCurrent'

的引用      

Main.cpp :(。text + 0x6c):对'glfwSwapBuffers'

的未定义引用      

Main.cpp :(。text + 0x71):对'glfwPollEvents'

的未定义引用      

Main.cpp :(。text + 0x7d):对'glfwWindowShouldClose'

的未定义引用      

Main.cpp :(。text + 0x92):对'glfwDestroyWindow'

的未定义引用      

Main.cpp :(。text + 0x97):对'glfwTerminate'

的未定义引用      

collect2:错误:ld返回1退出状态

     

make:*** [modernogl]错误1

以下是include和lib目录中的内容:http://imgur.com/e6qXSjB,fASlBUm#1

以下是来源(尽管......不应该有任何问题):

#include <GLFW/glfw3.h>

int main() {
    if (!glfwInit()) {
        return 1;
    }

    GLFWwindow* window {glfwCreateWindow(640, 480, "Modern OpenGL", nullptr, nullptr)};
    if (!window) {
        glfwTerminate();
        return 1;
    }

    glfwMakeContextCurrent(window);
    while (!glfwWindowShouldClose(window)) {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}

非常感谢你的帮助! - Erik

1 个答案:

答案 0 :(得分:3)

我只有库的静态版本&#34; libglfw3.a&#34;,我需要它的共享版本&#34; libglfw.so&#34;。确保使用BUILD_SHARED_LIBS = ON!

构建GLFW3