-2
最近OpenGLとUbuntuで遊んでいて、エラーが発生したようです。OpenGLの "Segmentation fault"エラー
私は、問題とまったく同じことをしている他のスレッドに従おうとしました。
は、簡単に言えば、私は仕事何もしなかった...
これは私のエラーです:
Segmentation fault (core dumped)
私は
g++ -o exec main.cpp -I/usr/include/libdrm -lglfw -I/usr/include/libdrm -lGL -I/usr/include/libdrm -lGLEW -lGLU -lGL
この "build.sh" スクリプトを使用してプログラムをコンパイルし、ここに私の "main.cpp"があります。
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main(){
if(!glfwInit()){
//error
}
glewExperimental = GL_TRUE;
glewInit();
GLFWwindow* window = glfwCreateWindow(640, 480, "Title", NULL, NULL);
if(!window){
//error
}
glfwMakeContextCurrent(window);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
float vertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
unsigned int VBO;
glGenBuffers(1, &VBO);
while(!glfwWindowShouldClose(window)){
glfwPollEvents();
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
}
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
編集: 問題は解決されました。 あなたがmakeContextCurrent(後glewInit()を呼び出す必要があり、私のようなものです誰)
後
を配置する必要があり本当に簡単だったし、問題の原因となる行を確認してください。 – Basya
簡単な質問です。組み込み環境やそれ以外では(符号なしのintのサイズが32ビット未満のような)環境にいますか? (むしろ最近はないかもしれませんが... ...) – Basya
64bit Ubuntuを実行しています。そして、問題のある行はglGenBuffers(1、&VBO) – 64humans