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 належним чином встановлений і посилається на бібліотеки OpenGL, встановлені моїм драйвером дисплея Nvidia 343 (який, я вважаю, також встановлює драйвери 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) до версії 1.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 :

Установці Qt для Linux припускають, що компілятор C ++, відладчик, make та інші інструменти розробки надаються операційною системою хоста. Крім того, для побудови графічних програм Qt потрібні бібліотеки OpenGL та заголовки. Більшість дистрибутивів Linux не встановлює все це за замовчуванням, але налаштування середовища розробки все одно просто.

Використовуйте наступні команди, щоб встановити основні вимоги до побудови програм Qt:

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

чому? Що це допоможе?
Тім

Якщо ви прочитаєте документ, який я
вказую

17

Ах, як зазначає @steeldriver, заголовки та бібліотеки - це різні речі, і виконайте наступні проблеми:

sudo apt-get install mesa-common-dev

При цьому встановлюються необхідні заголовки.


GL/gl.hЦікавим фактом є те, що постачається разом із Qt, якщо ви встановите WebEngine, підqtwebengine/src/3rdparty/chromium/third_party/mesa/src/include/GL/gl.h
Marco Sulla
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.