OpenGL 프로그램을 올바르게 실행하려고합니다. 저는 랩탑 승/GT 630M을 사용하고 있습니다. OS는 Fedora 16 64 비트입니다. 그것은 bumblebee를 사용하고 GPU에 대한 액세스 권한을 얻으려면 모든 실행 파일 앞에 optirun
을 사용해야합니다. 여기 NVIDIA OpenGL 라이브러리에 연결
[[email protected] 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:
[[email protected] 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
로 예를 실행하려고한다면 어떻게 OpenGL을 4.1이 노트북에서 작동하려면에
glXCreateContextAttribsARB not found
어떤 아이디어?
참고 : 내 CUDA 프로그램이 성공적으로 실행됩니다.
UPDATE : LDD의 ./example1
[[email protected] 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)
'ldd./example1'의 출력 내용은 무엇입니까? 링크 로더가 NVIDIA가 아닌 OpenGL 라이브러리 인 메사를 찾는 것 같습니다. – talonmies
@talonmies 결과를 표시하도록 질문이 업데이트되었습니다. – sj755