Qt GL / gl.h'yi bulamıyor ancak libGL.so var


13

64 bit Ubuntu 14.04 kullanıyorum.

Aldığım derleme hatası:

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>
                     ^

Garip bir şekilde, libvidL.so düzgün kurulmuş ve benim Nvidia 343 ekran sürücüsü tarafından yüklenen OpenGL kütüphaneleri için symlinked gibi görünüyor (ki ben de OpenGL sürücüleri yükler varsayalım).

$ 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

Yapmayı öneren önceki yayınları gördüm

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

ancak bunu denediğimde, desteklenen OpenGL sürümümü (glxinfo tarafından çıktı olarak) v1.4'e düşürdü. Ayrıca bunun neden yardım etmesi gerektiğinden emin değilim.

İşte benim glxinfo çıktı.

$ 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:

Teşekkürler


1
Kitaplıklar ve başlık dosyaları farklı şeylerdir: sisteminizde mesa-common-devpaket kurulu mu?
steeldriver

Yanıtlar:


19

İçin için İlişkin Qt doc :

Linux için Qt yükleyicileri, bir C ++ derleyicisi, hata ayıklayıcı, marka ve diğer geliştirme araçlarının ana bilgisayar işletim sistemi tarafından sağlandığını varsayar. Ayrıca, grafik Qt uygulamaları oluşturmak için OpenGL kitaplıkları ve başlıkları yüklü olmalıdır. Çoğu Linux dağıtımı bunların hepsini varsayılan olarak yüklemez, ancak bir geliştirme ortamı oluşturmak hala basittir.

Qt uygulamaları oluşturmak için temel gereksinimleri yüklemek üzere aşağıdaki komutları kullanın:

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

neden? Bu neye yardımcı olacak?
Tim

Yukarıda işaret ettiğim dokümanı okursanız, nedenini bileceksiniz
Habibillah

17

Ah, @steeldriver'ın işaret ettiği gibi, başlıklar ve kütüphaneler farklı şeylerdir ve aşağıdakileri yapmak sorunu çözdü:

sudo apt-get install mesa-common-dev

Bu, gerekli başlıkları yükler.


Eğlenceli gerçektir yani GL/gl.hsen WebEngine yüklerseniz altında, Qt ile dağıtılmaktadırqtwebengine/src/3rdparty/chromium/third_party/mesa/src/include/GL/gl.h
Marco Sulla
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.