GLEW错误1:缺少GL版本GLFW

问题描述

我正在尝试将OpenGL与GLEW和GLFW一起使用。但是,看来我无法成功调用glewInit(),并且收到以下错误消息:GLEW error (1): Missing GL version。 Stackoverflow上的类似问题还没有解决我的问题。 构建项目时,我将包含glew.c文件和glew.h所在的目录。

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_SAMPLES,0);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);
    glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);

    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH,SCR_HEIGHT,"Testing",nullptr,nullptr);
    glfwMakeContextCurrent(window);

    glewExperimental = true;
    GLenum glewErr = glewInit();
    if (glewErr != GLEW_OK)
    {
        std::cerr << "GLEW error (" << glewErr << "): " << glewGetErrorString(glewErr) << std::endl;
        glfwTerminate();
        return -1;
    }

    // Next,I paint some stuff using OpenGL ...
}

代码中的所有内容看起来都不错。此外,由于某种原因,如果我使用GLAD而不是GLEW,我的代码也可以正常工作。

  • 系统:Ubuntu 18.04.5 LTS。
  • OGL版本:3.3.0 NVIDIA 340.108
  • OGL供应商:NVIDIA Corporation
  • 渲染器:GeForce 820M / PCIe / SSE2
  • GLSL版本:通过Cg编译器的3.30 NVIDIA

更新: 我深入研究glew.c代码,发现错误出现的位置,尽管我仍然不明白为什么。这是代码段

static GLenum GLEWAPIENTRY glewContextInit ()
{
  PFNGLGETSTRINGPROC getString;
  const GLubyte* s;
  GLuint dot;

  #ifdef _WIN32
  getString = glGetString;      // Not executed,I'm on Ubuntu
  #else
  getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString");
  if (!getString)
    return GLEW_ERROR_NO_GL_VERSION;
  #endif

  /* query opengl version */
  s = getString(GL_VERSION);     // <<< ERROR: s gets a null pointer
  dot = _glewStrCLen(s,'.');
  if (dot == 0)
    return GLEW_ERROR_NO_GL_VERSION;   // <<< Function escapes here

// ... more statement down here
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...