Qt tidak dapat menemukan GL / gl.h tetapi libGL.so ada

13

Saya menjalankan 64 bit Ubuntu 14.04.

Kesalahan kompilasi yang saya dapatkan adalah:

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

Anehnya, saya tampaknya telah menginstal libGL dengan benar dan disinkronkan dengan pustaka OpenGL yang diinstal oleh driver display Nvidia 343 saya (yang saya duga juga menginstal driver 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

Saya telah melihat beberapa posting sebelumnya yang menyarankan untuk dilakukan

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

tetapi ketika saya mencobanya, itu menurunkan versi OpenGL saya yang didukung (seperti yang dikeluarkan oleh glxinfo) ke v1.4. Juga saya tidak yakin mengapa itu seharusnya membantu.

Ini adalah output glxinfo saya.

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

Terima kasih

ejang
sumber
1
Perpustakaan dan file header adalah hal yang berbeda: apakah sistem Anda memiliki mesa-common-devpaket yang diinstal?
steeldriver

Jawaban:

19

Mengenai untuk untuk Qt doc :

Pemasang Qt untuk Linux menganggap bahwa kompiler C ++, debugger, make, dan alat pengembangan lainnya disediakan oleh sistem operasi host. Selain itu, membangun aplikasi Qt grafis membutuhkan pustaka dan header OpenGL yang diinstal. Sebagian besar distribusi Linux tidak menginstal semua ini secara default, tetapi pengaturan lingkungan pengembangan masih mudah.

Gunakan perintah berikut untuk menginstal persyaratan dasar untuk membangun aplikasi Qt:

sudo apt-get install build-essential libgl1-mesa-dev
Habibillah
sumber
Mengapa? Apa yang akan membantu ini?
Tim
Jika Anda membaca dokumen yang saya tunjukkan di atas, Anda akan tahu alasannya
Habibillah
16

Ah, seperti yang ditunjukkan oleh @steeldriver, header dan perpustakaan adalah hal yang berbeda, dan melakukan hal berikut memperbaiki masalah:

sudo apt-get install mesa-common-dev

Ini menginstal header yang diperlukan.

ejang
sumber