Qt는 GL / gl.h를 찾을 수 없지만 libGL.so는 존재합니다


13

64 비트 Ubuntu 14.04를 실행 중입니다.

내가 얻는 컴파일 오류는 다음과 같습니다.

In file included from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qgl.h:39:0,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qglshaderprogram.h:37,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/QGLShaderProgram:1,
                 from glwidget.h:5,
                 from glwidget.cpp:1:
../../../Qt/5.4/gcc_64/include/QtGui/qopengl.h:122:21: fatal error: GL/gl.h: No such file or directory
 #  include <GL/gl.h>
                     ^

이상하게도 libGL.so가 올바르게 설치되어 Nvidia 343 디스플레이 드라이버 (OpenGL 드라이버도 설치되어 있음)가 설치 한 OpenGL 라이브러리에 심볼릭 링크되어있는 것 같습니다.

$ ls -l /usr/lib | grep -i libgl
lrwxrwxrwx  1 root root           17 Jan 15 12:47 libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx  1 root root           22 Jan 15 12:47 libGLESv1_CM.so.1 -> libGLESv1_CM.so.343.36
-rwxr-xr-x  1 root root        48248 Jan 15 12:47 libGLESv1_CM.so.343.36
lrwxrwxrwx  1 root root           14 Jan 15 12:47 libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx  1 root root           19 Jan 15 12:47 libGLESv2.so.2 -> libGLESv2.so.343.36
-rwxr-xr-x  1 root root        62352 Jan 15 12:47 libGLESv2.so.343.36
-rw-r--r--  1 root root          654 Jan 15 12:47 libGL.la
lrwxrwxrwx  1 root root           10 Jan 15 12:47 libGL.so -> libGL.so.1
lrwxrwxrwx  1 root root           15 Jan 15 12:47 libGL.so.1 -> libGL.so.343.36
-rwxr-xr-x  1 root root      1274520 Jan 15 12:47 libGL.so.343.36

내가 제안하는 이전 게시물을 보았습니다.

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

그러나 그것을 시도했을 때 지원되는 OpenGL 버전 (glxinfo로 출력)을 v1.4로 다운 그레이드했습니다. 또한 그것이 왜 도움이되는지 잘 모르겠습니다.

다음은 glxinfo 출력입니다.

$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 343.36
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 343.36
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

감사


1
라이브러리와 헤더 파일은 다릅니다. 시스템에 mesa-common-dev패키지가 설치되어 있습니까?
steeldriver

답변:


19

Qt doc에 관해서 :

Linux 용 Qt 설치 프로그램은 호스트 운영 체제에서 C ++ 컴파일러, 디버거, 제조사 및 기타 개발 도구를 제공한다고 가정합니다. 또한 그래픽 Qt 애플리케이션을 구축하려면 OpenGL 라이브러리 및 헤더가 설치되어 있어야합니다. 대부분의 Linux 배포판은 기본적으로 이들을 모두 설치하지는 않지만 개발 환경 설정은 여전히 ​​간단합니다.

Qt 애플리케이션을 빌드하기위한 기본 요구 사항을 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install build-essential libgl1-mesa-dev

왜? 이것이 무엇을 도와 줍니까?
Tim

위에서 언급 한 문서를 읽으면 그 이유를 알게 될 것입니다
Habibillah

17

아, @steeldriver가 지적했듯이 헤더와 라이브러리는 다르며 다음을 수행하면 문제가 해결됩니다.

sudo apt-get install mesa-common-dev

필요한 헤더가 설치됩니다.


재미있는 사실은 GL/gl.hWebEngine을 설치하면 Qt와 함께 제공되는 것입니다qtwebengine/src/3rdparty/chromium/third_party/mesa/src/include/GL/gl.h
Marco Sulla
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.