2014-04-14 80 views
5

我必須運行代碼,它包括庫GL/glut.h和GL/glew.h。 代碼被編譯好了,通過指令:OpenGL代碼未運行:不支持的OpenGL GLX擴展

$ gcc test.c -lglut -lGLEW -lGL 

但是當我運行它,我得到以下錯誤:

freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0' 

相同的代碼做了我的其他系統,它有突然的工作分解甚至不啓動,所以我必須完成這一項。

的$ glxinfo輸出是:

name of display: :0.0 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Error: couldn't find RGB GLX visual or fbconfig 

Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 

而且,$ lspci的輸出是:

00:00.0 Host bridge: Intel Corporation Device 0150 (rev 09) 
00:01.0 PCI bridge: Intel Corporation Device 0151 (rev 09) 
00:16.0 Communication controller: Intel Corporation Cougar Point HECI Controller #1 (rev 04) 
00:1a.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #2 (rev 04) 
00:1b.0 Audio device: Intel Corporation Cougar Point High Definition Audio Controller (rev 04) 
00:1c.0 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 1 (rev b4) 
00:1c.5 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 6 (rev b4) 
00:1d.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #1 (rev 04) 
00:1f.0 ISA bridge: Intel Corporation Device 1c5c (rev 04) 
00:1f.2 SATA controller: Intel Corporation Cougar Point 6 port SATA AHCI Controller (rev 04) 
00:1f.3 SMBus: Intel Corporation Cougar Point SMBus Controller (rev 04) 
01:00.0 VGA compatible controller: nVidia Corporation GT218 [GeForce 210] (rev a2) 
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1) 
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) 

請幫我,我覺得NVIDIA顯示驅動程序安裝不正確,但我無法解決這個問題。我也安裝了CUDA。

+0

相關http://stackoverflow.com/questions/8545291/opengl-glx-extension-not-supported?rq=1 –

回答

1

這不是一個編程問題,而是一個系統配置問題。從本質上講,它告訴你,你的系統配置不支持OpenGL。

GLX是X11協議擴展,用於在X11 drawable上設置OpenGL上下文。但是,這是設備驅動程序提供的擴展。您正在使用NVidia卡。我的猜測是,這是一個系統的香草安裝,它不會自動安裝專有的nvidia驅動程序,也不會配置打開的nouveau驅動程序。

因此,X11服務器可能使用nvfbdevvesa驅動程序;這些都不支持OpenGL/GLX。

解決方案:安裝並配置正確的驅動程序。無論是新手還是可以從http://www.nvidia.com/object/unix.html下載的驅動程序並安裝它。

你說你有安裝CUDA,則必須配置在/etc/X11/xorg.conf文件nvidia驅動程序,因爲如果暴發戶或者NV的安裝以及在它的前面。

另外請記住,每次執行內核更新時,都必須重新安裝CUDA驅動程序。