我正在尝试正确运行 OpenGL 程序。我正在使用带有 GT 630M 的笔记本电脑,操作系统是 Fedora 16 64 位。它使用大黄蜂,我必须optirun
在每个可执行文件之前使用才能访问 GPU。
这是glx信息:
[sj755@localhost WINDOWS_VERSIONS]$ glxinfo | grep OpenGL
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile
OpenGL version string: 2.1 Mesa 7.11.2
OpenGL shading language version string: 1.20
OpenGL extensions:
[sj755@localhost WINDOWS_VERSIONS]$ optirun glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 630M/PCIe/SSE2
OpenGL version string: 4.2.0 NVIDIA 295.49
OpenGL shading language version string: 4.20 NVIDIA via Cg compiler
OpenGL extensions:
我正在尝试编译的程序来自一本名为“交互式计算机图形学”的书,源代码可以在这里下载:http ://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/SIXTH_EDITION/
我只是使用以下命令编译了示例程序:
nvcc -o example1 example1.cpp ../../Common/InitShader.cpp -I ../../include/ -I /usr/include/GL/ -L /usr/include/GL/ -lglut -lGL -lGLEW -lGLU -lX11 -lXmu -lXi -lm -lpthread
当我像这样运行程序时,optirun ./example1
我遇到了段错误。我不确定是图书馆还是我编译它的方式,但似乎从来没有工作过。如果我尝试运行该示例,./example1
则会收到以下错误:
glXCreateContextAttribsARB not found
关于如何让 OpenGL 4.1 在这台笔记本电脑上工作的任何想法?
注意:我的 CUDA 程序运行成功。
更新: ldd ./example1 的输出
[sj755@localhost WINDOWS_VERSIONS]$ ldd ./example1
linux-vdso.so.1 => (0x00007fff31b1c000)
libglut.so.3 => /usr/lib64/libglut.so.3 (0x00007f4d0b7dc000)
libGL.so.1 => /usr/lib64/libGL.so.1 (0x0000003990a00000)
libGLEW.so.1.6 => /usr/lib64/libGLEW.so.1.6 (0x000000389b600000)
libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00000038a0000000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000397a800000)
libXmu.so.6 => /usr/lib64/libXmu.so.6 (0x000000389f800000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000397c400000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003976800000)
libcudart.so.4 => /usr/local/cuda/lib64/libcudart.so.4 (0x00007f4d0b57d000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003983800000)
libm.so.6 => /lib64/libm.so.6 (0x0000003977400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003977800000)
libc.so.6 => /lib64/libc.so.6 (0x0000003976400000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000397b000000)
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x000000398e600000)
libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x000000397f800000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x000000397d000000)
libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x0000003991200000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003976c00000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000397a000000)
libXt.so.6 => /usr/lib64/libXt.so.6 (0x0000003996e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003976000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003977000000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000397ac00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003988400000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003988800000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003980800000)