c - glewInit Segfault與GLEW 2.0 - Code Examples

文章推薦指數: 80 %
投票人數:10人

"Intel GPUs don't support 3.3\n"); glfwTerminate(); return -1; } glfwMakeContextCurrent(window); glewExperimental = 1; if (glewInit() != c-glewInitSegfault與GLEW2.0 openglsegmentation-fault (1) 有一個錯誤報告說,核心配置文件在GLEW中被打破,直到2.0.0。

因此,你應該更新GLEW。

如果這不起作用,請通過將GLFW_OPENGL_CORE_PROFILE標誌替換為GLFW_OPENGL_CORE_PROFILE來切換到兼容性配置文件。

我試圖寫一個簡單的程序,只是打開一個窗口與GLEW2.0和GLFW3,但遇到一個段錯誤...這是我的來源:#include #include #include intmain(intargc,char**argv){ constintheight=100; constintwidth=100; if(!glfwInit()){ printf("Glfwfailedtoinit\n"); return-1; } //4xantialiasing glfwWindowHint(GLFW_SAMPLES,4); //WewantOpenGL3.3 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3); //Wedon'twanttheoldOpenGL glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE); GLFWwindow*window; window=glfwCreateWindow(width,height,"Tutorial01",NULL,NULL); if(window==NULL){ printf("GLFWFailedtoopenawindow." "IntelGPUsdon'tsupport3.3\n"); glfwTerminate(); return-1; } glfwMakeContextCurrent(window); glewExperimental=1; if(glewInit()!=GLEW_OK){ printf("GLEWFailedtoinitialize.\n"); return-1; } glfwSetInputMode(window,GLFW_STICKY_KEYS,GL_TRUE); do{ glfwSwapBuffers(window); glfwPollEvents(); }while(glfwGetKey(window,GLFW_KEY_ESCAPE)!=GLFW_PRESS&& glfwWindowShouldClose(window)==0); }我編譯這個gcctest.c-g-lGLEW-lglfw-otest並在運行程序時收到段錯誤。

使用gdb,segfault上的backtrace給出00x0000000000000000in??() 10x00007ffff7ba02a7inglxewInit()from/usr/lib64/libGLEW.so.2.0 20x00007ffff7ba87a3inglewInit()from/usr/lib64/libGLEW.so.2.0 30x0000555555554bd4inmain(argc=1,argv=0x7fffffffdf18)attest.c:39我在Ubuntu17.04上,和Ubuntuspacakgemanager一起安裝了glew/glfwsudoapt-getinstalllibglew2.0libglew-devlibglfw3libglfw3-dev我在這裡按照這個教程。

如果它有什麼不同,我沒有一個桌面管理器或合成器運行。

我正在使用i3wm。

但是,與compton合成器一起運行時,segfault仍會出現。

最後,為了能提供一些額外的信息,ldd顯示了test的鏈接庫linux-vdso.so.1=>(0x00007ffc44ce9000) libGLEW.so.2.0=>/usr/lib64/libGLEW.so.2.0(0x00007f8e53dc9000) libglfw.so.3=>/usr/lib/x86_64-linux-gnu/libglfw.so.3(0x00007f8e53b86000) libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f8e537bf000) libGL.so.1=>/usr/lib/nvidia-375/libGL.so.1(0x00007f8e5351b000) librt.so.1=>/lib/x86_64-linux-gnu/librt.so.1(0x00007f8e53313000) libm.so.6=>/lib/x86_64-linux-gnu/libm.so.6(0x00007f8e53008000) libdl.so.2=>/lib/x86_64-linux-gnu/libdl.so.2(0x00007f8e52e04000) libX11.so.6=>/usr/lib/x86_64-linux-gnu/libX11.so.6(0x00007f8e52acb000) libpthread.so.0=>/lib/x86_64-linux-gnu/libpthread.so.0(0x00007f8e528ad000) libXrandr.so.2=>/usr/lib/x86_64-linux-gnu/libXrandr.so.2(0x00007f8e526a2000) libXinerama.so.1=>/usr/lib/x86_64-linux-gnu/libXinerama.so.1(0x00007f8e5249f000) libXxf86vm.so.1=>/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1(0x00007f8e52297000) libXcursor.so.1=>/usr/lib/x86_64-linux-gnu/libXcursor.so.1(0x00007f8e5208d000) /lib64/ld-linux-x86-64.so.2(0x000055e0ef28b000) libGLX.so.0=>/usr/lib/nvidia-375/libGLX.so.0(0x00007f8e51e5d000) libGLdispatch.so.0=>/usr/lib/nvidia-375/libGLdispatch.so.0(0x00007f8e51b8f000) libxcb.so.1=>/usr/lib/x86_64-linux-gnu/libxcb.so.1(0x00007f8e5196d000) libXext.so.6=>/usr/lib/x86_64-linux-gnu/libXext.so.6(0x00007f8e5175b000) libXrender.so.1=>/usr/lib/x86_64-linux-gnu/libXrender.so.1(0x00007f8e5154f000) libXfixes.so.3=>/usr/lib/x86_64-linux-gnu/libXfixes.so.3(0x00007f8e51349000) libXau.so.6=>/usr/lib/x86_64-linux-gnu/libXau.so.6(0x00007f8e51145000) libXdmcp.so.6=>/usr/lib/x86_64-linux-gnu/libXdmcp.so.6(0x00007f8e50f3f000)謝謝你的幫助。

c   opengl   segmentation-fault   glfw   glew   execve文件沒有找到時,正在使用相同的文件!



請為這篇文章評分?