glewInit 失败:缺少 GL 版本

Posted

技术标签:

【中文标题】glewInit 失败:缺少 GL 版本【英文标题】:Failed glewInit: Missing GL version 【发布时间】:2018-04-06 11:34:34 【问题描述】:

我在课程中开始学习OpenGL。下载glew-2.1.0(64)和glfw-3.2.1(64)。就像所有连接的东西一样,IDE 不会发誓,但初始化会在命令行中产生以下输出:

错误初始化 GLEW:缺少 GL 版本

#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
// GLFW
#include <GLFW/glfw3.h>
const char* APP_TITLE = "Introduction in modern openGL";

const int gWindowWidth = 800;
const int gWindowHeight = 600;

int main()

    if (!glfwInit())
    
        std::cerr << "Failed in initialization GLFW" << std::endl;
        return -1;
    
    glfwWindowHint(GLFW_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 
    GLFWwindow* pWindow = glfwCreateWindow(gWindowWidth, gWindowHeight, APP_TITLE, NULL, NULL);
    if (pWindow)
    
        std::cerr << "Failed in create Windows" << std::endl;
        glfwTerminate();
        return -1;
    
    glfwMakeContextCurrent(pWindow);

    glewExperimental = GL_TRUE;
    GLenum err = glewInit();
    if (GLEW_OK != err)
    

        std::cerr << "Error initialization GLEW: " << glewGetErrorString(err) << std::endl;
        glfwTerminate();
        return -1;
    

    while (!glfwWindowShouldClose(pWindow))
    
        glfwPollEvents();

        glfwSwapBuffers(pWindow);

    
    glfwTerminate();
    return 0;

有什么问题?我在网上搜索,但是有解决该类型问题的方法:

添加 glfwMakeContextCurrent(game_window);在 glewInit() 之前

【问题讨论】:

如何在项目中添加glew,使用源代码还是已经编译好的库? @Ripi2,已经编译好的库 然后评论#define GLEW_STATIC这一行并重试。看看glew doc @Ripi2 link 提供的库似乎不兼容,可能是因为它们是 32 位而不是您的 64 位环境。删除它们,将 glew 源添加到您的项目中,启用 GLEW_STATIC 并重试。 【参考方案1】:

非常愚蠢的错误

我写的

glfwWindowHint(GLFW_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_VERSION_MINOR, 3);

我应该有

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);  
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

【讨论】:

以上是关于glewInit 失败:缺少 GL 版本的主要内容,如果未能解决你的问题,请参考以下文章

客户端程序中的 glewInit() 和 GLEW_ARB_xxx_ 失败

关于openGL中glew使用的简单问题

GLEW 无法初始化

Glew 未初始化

glew未定义的OpenGL函数[关闭]

SQL server 2008安装失败,缺少.NET3.5