web-dev-qa-db-fra.com

Qt: impossible de trouver l'erreur -lGL

Je viens de réinstaller QtCreator, de créer un nouveau projet (Qt Application) et de l'obtenir après la compilation:

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'

(Le projet est vide, je n'ai commis aucune modification)

Qt Creator 2.7.2
Basé sur Qt 5.1.0 (32 bits)
Ubuntu 13.04

Comment résoudre ce problème?

91
Hofmn

Vous devriez installer le paquet "libgl1-mesa-dev":

Sudo apt install libgl1-mesa-dev
138
Sayyed Hassan Amiri

vous n'avez rien besoin d'installer. libGL est déjà installé avec Ubuntu, il vous suffit de le lier. (testé pour Ubuntu 14.x et 15.x, pourrait fonctionner pour les versions ultérieures)

  1. Recherchez d’abord la bibliothèque GL
  2. Puis reliez-le sous/usr/lib
  3. Si la bibliothèque est manquante, elle peut être installée via le paquet libgl1-mesa-dev

Voici comment vous pouvez faire ceci:

$ locate libGL
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
60
destan

Mon système est Ubuntu 16.04 sur un ordinateur X86 (avec NVIDIA Geforce GPU).

Vérifiez le fichier de bibliothèque localiser dans /usr/lib/x86_64-linux-gnu

ls -al /usr/lib/x86_64-linux-gnu/libG*

Si vous voyez le lien brisé, réinstallez libgl1-mesa-glx

Sudo apt install --resintall libgl1-mesa-glx

Et revérifier la bibliothèque.

1
Lastea

écrire:

yum provides */libGL.so 

après avoir fourni:

yum install mesa-libGL-devel mesa-libGLU-devel
1
Shojib Mahmud

Le module gui Qt est inclus par défaut . Si vous ne souhaitez pas l'utiliser dans un projet (par exemple, il s'agit d'une bibliothèque ou n'utilise que stdio), vous devez le spécifier dans le fichier .pro.

QT -= gui

Et l'éditeur de liens n'essaiera pas de trouver lGL, qu'il soit installé ou non.

Mon cas est certes un peu étrange, car la principale raison d’utiliser Qt est de créer des interfaces graphiques. L'installation de la bibliothèque GL n'est certainement pas difficile, je voulais juste savoir pourquoi ma rapide et sale Hello World le voulait.

1
squeevee

Cela a fonctionné pour moi:

Sudo ln -s /usr/lib/libEGL1.so /usr/lib/libGL.so
0
Sebastian Karlsson