glViewport undefined reference

时间:2014-07-20 06:01:21

标签: c++ windows opengl glfw glew

摘要

编译器MinGW操作系统Windows 7 x64

glViewport()函数提供Undefined Reference错误

我试过了

  1. 添加-lGL结果cannot find -lGL< - 如何找到OpenGL dll文件?
  2. 检查-Lpath -lglew32 -lglfw3,好像不是最后一个链接器参数
  3. 我可能错误编译了GLEW和/或错误复制的GLEW库,因为我不确定我是否需要libglew32.a和/或libglew32.dll.a文件。

    我有像这样的文件夹结构

    • 的OpenGL
        • glew32.dll
        • glfw3.dll
      • 包括
        • GL
          • glew.h
          • glewx.h
          • wglew.h
        • GLFW
          • glfw3.h
          • glfw3native.h
        • glfw3.lib

    长篇故事

    Hello经验丰富的程序员。你谦虚的提问者回来了。今天我和我的朋友决定开始/学习OpenGL。在我们按照this教程进行操作时,由于出现glViewport错误,我们一直停留在Undefined reference。我们正在研究NetBeans 8.0 C / C ++版本。我已经仔细检查了Makefile,因为在编译时,一些提到-Lpath -lglew32 -lglfw3的网站必须是最后一个参数。我曾尝试将-lGL作为链接器选项,但遗憾的是它不会起作用。


    代码

    #include <cstdlib>
    //GLEW
    #include "GL/glew.h"
    //GLFW
    #include "GLFW/glfw3.h"
    
    using namespace std;
    
    /*
     * 
     */
    int main(int argc, char** argv) {
        glewExperimental = GL_TRUE;
        glfwInit();
        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
        glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
    
        GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL , NULL);
        glfwMakeContextCurrent(window);
        glViewport(0, 0, 800, 600);
    
        return 0;
    }
    

    作为旁注,这是我第一次使用标准以外的库。 总结看起来比长篇故事要长得多..

    编辑:我不认为这是一个重复的问题,因为我要求链接特定的库,而不是如何链接C ++中的东西。这就像说所有编码问题都是相同的,因为它们都涉及编写代码。检查了上述主题,找不到任何关于链接opengl32库的方向。

1 个答案:

答案 0 :(得分:5)

在Windows中,OpenGL API接口库称为opengl32而非GL,因此您必须与

链接
-lopengl32

(请注意,它总是...... 32,即使在64位系统上也是如此)。