我正在用glew和glfw与opengl合作一个项目
项目更大,但只有初始化代码不能正常工作。我使用的是glew 2.2.0_1和glfw 3.3.8(顺便说一句,我在调试器中运行了这个,所以我100%肯定是glewInit()导致了segfault。如果我把它放在一个没有其余代码的文件中,它也会导致segfault)
代码为:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
const int WIDTH = 640;
const int HEIGHT = 480;
int main(int argc, char **argv) {
// Set up GLFW and create window
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "Spinning Cube", nullptr, nullptr);
glfwMakeContextCurrent(window);
if (!window) {
return 1;
}
// Set up GLEW
glewInit();
// ...
}
这是一个库错误还是我做错了什么?(对于任何人问这个代码编译没有任何警告或错误)
1条答案
按热度按时间vwkv1x7d1#
在macOS上,您必须创建设置了向前兼容性标志的OpenGL Core Profile上下文: