glViewport未定义引用

glViewport undefined reference

本文关键字:引用 未定义 glViewport      更新时间:2023-10-16

摘要

编译器MinGW操作系统Windows 7 x64

glViewport()函数给出Undefined Reference错误

我试过

  1. 加上-lGL得到cannot find -lGL<-如何定位OpenGL dll文件
  2. 检查了-Lpath -lglew32 -lglfw3,好像不是最后一个链接器参数

我可能编译了错误的GLEW和/或错误复制了GLEW库,因为我不确定是否需要libglew32.a和/或libglew33.dll.a文件。

我有一个类似的文件夹结构

  • OpenGL
    • 垃圾箱
      • glew32.dll
      • glfw3.dll
    • 包括
      • GL
        • glew.h
        • glewx.h
        • wglew.h
      • GLFW
        • glfw3.h
        • glfw3native.h
    • libs
      • glfw3.lib

长话短说

你好,经验丰富的程序员。你谦逊的提问者回来了。今天我和我的朋友决定开始学习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;
}

顺便说一句,这是我第一次使用标准以外的库。Well Summary看起来比Long Story长得多。。

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

在Windows中,OpenGL API接口库称为opengl32,而不是GL,因此必须与链接

-lopengl32

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