J'ai une nouvelle installation de Ubuntu 14 LTS
à partir de ce matin, j'utilise un PC avec Nvidia graphic cards
et j'ai correctement installé la dernière version du pilote sur le site Web de Nvidia (NVIDIA-Linux-x86_64-352.30
).
J'essaie de construire QT 5.4
(qt-partout-opensource-src-5.4.2) et je suis confronté à un problème avec le fait de ne pas pouvoir trouver opengl.
J'ai installé les packages suivants afin de résoudre toutes les dépendances:
Sudo apt-get update
Sudo apt-get install libxi-dev build-essential libdbus-1-dev libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev
et enfin:
Sudo apt-get install mesa-common-dev
Sudo apt-get install libglu1-mesa-dev
Autant que je sache, ce qui précède devrait complètement installer les paquets opengl pour Ubuntu.
J'essaie ensuite de configurer QT en utilisant la commande suivante:
./configure -v -confirm-license -developer-build -opensource -xinput2 -dbus -opengl desktop -nomake examples -nomake tests)
Je reçois l'erreur suivante:
OpenGL auto-detection... ()
g++ -c -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/linux-g++ -o opengldesktop.o opengldesktop.cpp
g++ -Wl,-O1 -o opengldesktop opengldesktop.o -lGL
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [opengldesktop] Error 1
OpenGL disabled.
The OpenGL functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL
Je cherche depuis un moment et je ne peux que supposer que tous les bons packages sont installés mais que quelque chose manque dans le chemin système. Que peut-il manquer et comment puis-je l'ajouter au chemin du système?
Le résultat suivant pourrait aider:
ldconfig -p | grep libGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
C'est probablement le paquetage libgl1-mesa-dev
.
Nous avons rencontré le même problème sous Debian 8.5: le pilote Nvidia + toutes les bibliothèques recommandées dans Building Qt5 à partir de Git installé mais l’étape de configuration de Qt 5.9 a échoué car le support OpenGL manquait.
Extrait:
libGL.so
- mais la lib est manquantelibGL.so
est fourni par libgl1-mesa-glx
qui ajoute un lien symbolique de libGL.so
à libGL.so.x.y.z
(dans mon cas libGL.so.1.2.0
)dpkg
, libGL.so.1.2.0
fait également partie de libgl1-mesa-glx
- mais il manque pour des "raisons"libGL.so
indique qu'une version de bibliothèque est installée par le pilote Nvidia (/usr/lib/x86_64-linux-gnu/libGL.so.346.35
)l'ajout d'un lien symbolique à ce fichier a résolu le problème
Sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
configure
en utilisant l'indicateur -recheck
Procédure pas à pas (peut également s'appliquer à des problèmes similaires):
$ ./configure -opensource -confirm-license -recheck -v 1>dump 2>&1
...
> grep 'libGL.so.*No' dump
> /usr/bin/ld.gold: error: cannot open /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so: No such file or directory
> /usr/bin/ld.gold: error: cannot open /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so: No such file or directory
$ ls -l /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so
lrwxrwxrwx 1 root root 14 Aug 19 2015 /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so -> libGL.so.1.2.0
libGL.so.1.2.0 est manquant, recherchez le fournisseur ...
$ dpkg -S libGL.so.1.2.0
libgl1-mesa-glx:AMD64: /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
$ dpkg -l libgl1-mesa-glx
...
||/ Name Version Architecture Description
+++-========================================-=========================-=========================-=====================================================================================
ii libgl1-mesa-glx:AMD64 10.3.2-1+deb8u1 AMD64 free implementation of the OpenGL API -- GLX runtime
Donc, la bibliothèque libgl1-mesa-glx
est installée mais le fichier libGL.so.1.2.0
est manquant dans le chemin. Recherchez d'autres fichiers libGL.so*
...
$ find /usr/lib -name libGL.so*
/usr/lib/x86_64-linux-gnu/libGL.so.346.35
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/libGL.so.1
Le /usr/lib/x86_64-linux-gnu/libGL.so.346.35
est la seule bibliothèque openGL valide sur ma machine (installée par le programme d'installation du pilote Nvidia).
Solution:
Sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
La solution ci-dessous a échoué pour moi à un stade ultérieur, clang-c ++ n’ayant pas pu compiler correctement la source qt.
Les étapes suivantes détectent Desktop OpenGL sur le système 32 bits Mint 17.3 avec une carte Nvidia et des pilotes propriétaires. dans le fichier /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs/common/linux.conf inclus dans /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase /mkspecs/linux-g++/qmake.conf
les variables d'environnement doivent être définies sur:
QMAKE_INCDIR_OPENGL = "/ usr/include/GL" QMAKE_LIBDIR_OPENGL = "/ usr/lib /" QMAKE_INCDIR_OPENGL_ES2 = $$ QMAKE_INCDIR_OPENGL QMAKE_LIBDIR_OPENGL_ES2 = $$ QMAKE_LIBDIR
QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
La libGL a utilisé des points sur la bibliothèque fournie par le pilote Nvidia dans mon système. /usr/lib/libGL.so -> /usr/lib/i386-linux-gnu/libGLX_nvidia.so.390.48
Considérant que /usr/lib/i386-linux-gnu/libGL.so -> mesa/libGL.so à la bibliothèque fournie par Mesa3D.
Assurez-vous également que mesa-common-dev, libglu1-mesa-dev, libgl1-mesa-dev et les autres packages de développement OpenGL sont installés.
/root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix =/root/work/qt5_setup/qt_install -opensource -confirm-license -platform linux-g ++ && make -j 5
ce qui suit détecte Desktop OpenGL sur le système 32 bits Mint 17.3 avec une carte Nvidia et des pilotes propriétaires. /root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix =/root/work/qt5_setup/qt_install -opensource -confirm-license -platform linux-clang-libc ++
les options de plates-formes sont disponibles dans /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs
Avant l'installation ci-dessus, clang (compilateur C, C++ et Objective-C (basé sur LLVM)) et libc ++ - dev (bibliothèque LLVM C++ Standard (fichiers de développement))
LLVM est un ensemble de bibliothèques et d’outils qui facilitent la création de compilateurs, d’optimiseurs, de générateurs de code juste à temps et de nombreux autres programmes liés aux compilateurs.
Considérant que /root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix =/root/work/qt5_setup/qt_install -opensource -confirm-license
avec les options de plate-forme par défaut (linux-g ++ linux-g ++ - 32) n'a pas trouvé Desktop OpenGL
J'ai eu le même problème sur Ubuntu 16.04 avec Qt 5.9. J'ai d'abord exécuté le configure quand le libgl1-mesa-dev et libglu1-mesa-dev n'étaient pas installés. Après cela, j'ai installé ces bibliothèques libgl *. Mais l'erreur "OpenGL introuvable" est restée. L'erreur a disparu après la suppression du répertoire non compressé actuel et le décompactage de l'archive.