Ich habe gerade QtCreator neu installiert, ein neues Projekt erstellt (Qt Application) und nach dem Kompilieren folgendes erhalten:
/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'
(Projekt ist leer, ich habe keine Änderungen vorgenommen)
Qt Creator 2.7.2
Basierend auf Qt 5.1.0 (32 Bit)
Ubuntu 13.04
Wie löse ich dieses Problem?
Sie sollten das Paket "libgl1-mesa-dev" installieren:
Sudo apt install libgl1-mesa-dev
sie müssen nichts installieren. libGL
ist bereits mit Ubuntu installiert, Sie müssen es nur mit einem Softlink verknüpfen. (getestet für Ubuntu 14.x und 15.x, funktioniert möglicherweise für spätere Versionen)
So könnten Sie das machen:
$ 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
Mein System ist Ubuntu 16.04 auf X86-Computern (mit NVIDIA Geforce GPU).
Überprüfen Sie die Bibliotheksdatei in /usr/lib/x86_64-linux-gnu
ls -al /usr/lib/x86_64-linux-gnu/libG*
Wenn Sie den fehlerhaften Link sehen, installieren Sie libgl1-mesa-glx
Neu.
Sudo apt install --resintall libgl1-mesa-glx
Überprüfen Sie die Bibliothek erneut.
schreiben:
yum provides */libGL.so
nach Bereitstellung:
yum install mesa-libGL-devel mesa-libGLU-devel
Das GUI QT-Modul ist standardmäßig enthalten . Wenn Sie es nicht in einem Projekt verwenden möchten (z. B. eine Bibliothek oder nur stdio), müssen Sie dies in der .pro-Datei angeben.
QT -= gui
Und der Linker versucht nicht, lGL zu finden, unabhängig davon, ob es installiert ist.
Mein Fall ist zugegebenermaßen etwas seltsam, da der Hauptgrund für die Verwendung von Qt die Erstellung von GUIs ist. Die Installation der GL Bibliothek ist sicherlich nicht schwierig, ich wollte nur wissen, warum meine schnelle und schmutzige Hello World es wollte.
Das hat bei mir funktioniert:
Sudo ln -s /usr/lib/libEGL1.so /usr/lib/libGL.so