Ответ 1
Вам следует установить пакет "libgl1-mesa-dev":
sudo apt install libgl1-mesa-dev
Я просто переустановил QtCreator, создал новый проект (приложение Qt) и получил это после компиляции:
/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'
(Проект пуст, я не совершал никаких изменений)
Qt Creator 2.7.2
На основе Qt 5.1.0 (32 бит)
Ubuntu 13.04
Как решить эту проблему?
Вам следует установить пакет "libgl1-mesa-dev":
sudo apt install libgl1-mesa-dev
Вам не нужно ничего устанавливать. libGL
уже установлен с Ubuntu, вам просто нужно софт-линкнуть. (протестировано для Ubuntu 14.x и 15.x, может работать на более поздних версиях)
Вот как вы могли бы сделать это:
$ 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
записывать:
yum provides */libGL.so
после предоставления:
yum install mesa-libGL-devel mesa-libGLU-devel
Модуль gui Qt включен по умолчанию. Если вы не хотите использовать его в проекте (например, это библиотека или использует только stdio), вам нужно указать это в файле .pro.
QT -= gui
И компоновщик не будет пытаться найти lGL независимо от того, установлен ли он.
Мой случай, по общему признанию, немного странный, поскольку главная причина использования Qt - создание графических интерфейсов. Установить библиотеку GL, конечно, не сложно, я просто хотел узнать, почему мой быстрый и грязный Hello World захотел это.
Моя система - Ubuntu 16.04 на компьютере x86 (с графическим процессором NVIDIA GeForce).
Проверьте файлы библиотеки, расположенные в /usr/lib/x86_64-linux-gnu
ls -al /usr/lib/x86_64-linux-gnu/libG*
Если вы видите неработающую ссылку, переустановите libgl1-mesa-glx
sudo apt install --reinstall libgl1-mesa-glx
И перепроверь библиотеку.
Это сработало для меня:
sudo ln -s /usr/lib/libEGL1.so /usr/lib/libGL.so
Решил эту проблему всего минуту назад в suse. Просто сделайте следующий шаг ниже, и QTCreator должен работать нормально.
sudo zypper install --type pattern devel_basis