Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Glew初始化失败:缺少GL版本(GLFW)_C++_Opengl_Glfw_Glew - Fatal编程技术网

C++ Glew初始化失败:缺少GL版本(GLFW)

C++ Glew初始化失败:缺少GL版本(GLFW),c++,opengl,glfw,glew,C++,Opengl,Glfw,Glew,我正在尝试用GLFW和GLEW画一个简单的三角形 我正在Win 8.1 x64 PC上使用CLion(它本身就使用cmake和cygwin) 我的问题是:glewInit()初始化时返回错误1(缺少GL版本)。人们(比如在线程中)遇到了与OpenGL上下文相关的问题,但在调用glewInit()之前已经创建了我的问题 这是我的密码: #include <iostream> #include <stdlib.h> #include <vector> #defi

我正在尝试用GLFW和GLEW画一个简单的三角形

我正在Win 8.1 x64 PC上使用CLion(它本身就使用cmake和cygwin)

我的问题是:
glewInit()
初始化时返回错误1(
缺少GL版本
)。人们(比如在线程中)遇到了与OpenGL上下文相关的问题,但在调用
glewInit()
之前已经创建了我的问题

这是我的密码:

#include <iostream>
#include <stdlib.h>
#include <vector>

#define GLEW_STATIC

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>

//...

if(!glfwInit()) {
    std::cerr << "Couldn't initialize GLFW" << std::endl;
}

glfwSetErrorCallback(glfw_error_callback);
glfwWindowHint(GLFW_SAMPLES, 4); //16x antialiasing sisi rpz
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // OpenGL 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

window = glfwCreateWindow(width, height, title.c_str(), NULL, NULL);
if(window == NULL) {
    std::cerr << "Failed to open GLFW window. Are your drivers up-to-date ?" << std::endl;
    glfwTerminate();

    exit(EXIT_FAILURE);
}


glfwMakeContextCurrent(window);
if(!glfwGetCurrentContext()) {
    std::cerr << "Couldn't create OpenGL context" << std::endl;
    exit(EXIT_FAILURE);
}

glewExperimental = GL_TRUE;
GLenum err = glewInit();
if(err != GLEW_OK) {
    std::cerr << "Failed to initialize glew : " << glewGetErrorString(err) << " (" << err << ")" << std::endl;
}

您的硬件和驱动程序版本是什么?尝试使用3.2初始化。GL3.3不适用于旧的或车载视频卡。我的视频卡是GTX 660,最新的驱动程序,支持OpenGL>4。GLEW似乎无法从glfw上下文中获取GL版本?但是当我调用
glGetString(GL\u版本)
时,它工作得很好(但是我不能使用
glGenBuffers()
,因为glew不工作)。
cmake_minimum_required(VERSION 2.8.4)
project(MY_PROJECT)

set(SOURCE_FILES main.cpp Host.cpp GraphicWindow.cpp)
add_executable(MY_PROJECT ${SOURCE_FILES})

target_link_libraries(MY_PROJECT wsock32 ws2_32)

#GL stuff
include_directories(lib/glew-1.11.0/include/)
include_directories(lib/glfw-3.0.4.bin.WIN64/include/)
include_directories(lib/glm)

target_link_libraries(MY_PROJECT glfw3 glu32 gdi32 opengl32 glew)