glViewport undefined reference

Yak*_*kan 4 c++ windows opengl glew glfw

摘要

编译器MinGWOSWindows 7 x64

glViewport()功能给出了Undefined Reference错误

我试过了

  1. 添加-lGL结果cannot find -lGL< - 如何找到OpenGL DLL文件?
  2. 检查-Lpath -lglew32 -lglfw3好像不是最后一个链接器参数

我可能错误编译了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.当我们遵循教程时,我们坚持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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

dat*_*olf 6

在Windows中,opengl32不调用OpenGL API接口库GL,因此必须链接

-lopengl32
Run Code Online (Sandbox Code Playgroud)

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