У меня есть новая установка Ubuntu 14 LTS
с этого утра я использую ПК с Nvidia graphic cards
и я успешно установил последнюю версию драйвера с веб-сайта Nvidia (NVIDIA-Linux-x86_64-352.30
).
Я пытаюсь создать QT 5.4
(qt-everywhere-opensource-src-5.4.2) и я сталкиваемся с проблемой с ним не бывший способный находить opengl.
Я установил следующие пакеты для разрешения всех зависимостей:
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
и наконец:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev
Насколько я знаю, что вышеупомянутое должно полностью установить opengl пакеты для Ubuntu.
Я затем пытаюсь настроить QT с помощью следующей команды:
./configure -v -confirm-license -developer-build -opensource -xinput2 -dbus -opengl desktop -nomake examples -nomake tests)
Я получаю следующую ошибку:
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
Я искал некоторое время теперь, и я могу только предположить, что у меня есть все правильные установленные пакеты, но что-то отсутствует в системном пути. Что может отсутствовать и как я добавляю его к системному пути?
Следующий вывод мог бы помочь:
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
У меня была та же проблема о Ubuntu 16.04 с Qt 5.9. Сначала я работал эти , настраивают , когда libgl1-mesa-dev и libglu1-mesa-dev не был установлен. После этого я установил эти libgl* библиотеки. Но ошибка "OpenGL, не найденный", осталась. Ошибка исчезла после того, как текущий несжатый каталог был удален, и архив был распакован снова.
Столкнулся с той же проблемой о Debian 8.5: драйвер Nvidia + все освобождает рекомендуемый в Создании Qt5 от установленного Мерзавца, но настройте шаг отказавшей причины Qt 5.9 недостающей поддержки OpenGL.
Выборка:
libGL.so
- но lib отсутствуетlibGL.so
обеспечивают libgl1-mesa-glx
это добавляет символьную ссылку от libGL.so
кому: libGL.so.x.y.z
(в моем случае libGL.so.1.2.0
)dpkg
, libGL.so.1.2.0
также часть libgl1-mesa-glx
- но пропавшие без вести по 'причинам'libGL.so
показывает, что существует версия библиотеки, установленная драйвером Nvidia (/usr/lib/x86_64-linux-gnu/libGL.so.346.35
)добавление символьной ссылки на этот файл решило проблему
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
использование флага -recheck
Пошаговая процедура (может также быть применен к подобным проблемам):
$ ./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 отсутствует, проверьте на поставщика...
$ 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
Так libgl1-mesa-glx
библиотека установлена, но libGL.so.1.2.0
отсутствует в пути. Проверьте на другой 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
/usr/lib/x86_64-linux-gnu/libGL.so.346.35
единственный допустимый openGL lib на моем поле (был установлен установщиком драйвера Nvidia).
Решение:
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
следующее обнаруживает Рабочий стол OpenGL на Монетном дворе 17,3 32-разрядных систем с картой Nvidia и собственными драйверами./root/work/qt5_setup/qt-everywhere-src-5.10.0/configure - префикс =/root/work/qt5_setup/qt_install - открытый исходный код - подтверждать-лицензия - платформа linux-clang-libc ++
опции платформ могут быть найдены в/root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs
Прежде выше лязга установки (C, C++ и компилятор Objective C (базирующийся LLVM)) и libc ++-dev (LLVM библиотека Standard C++ (файлы для разработчика))
LLVM является набором библиотек и инструментов, которые помогают создать компиляторы, оптимизаторы, своевременные генераторы кода и много других связанных с компилятором программ.
Принимая во внимание, что/root/work/qt5_setup/qt-everywhere-src-5.10.0/configure - префикс =/root/work/qt5_setup/qt_install - открытый исходный код - подтверждать-лицензия
с опциями платформы по умолчанию (linux-g ++ linux-g ++-32) не нашел Рабочий стол OpenGL
Ниже решения перестал работать для меня на более позднем этапе с C++ лязга, не могущим скомпилировать спокойный источник правильно. Так отправляя другое решение с помощью g ++ сам компилятор.
Следующие шаги обнаруживают Рабочий стол OpenGL на Монетном дворе 17,3 32-разрядных систем с картой Nvidia и собственными драйверами. в файле/root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs/common/linux.conf, который включен/root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs/linux-g ++/qmake.conf
переменные среды должны быть установлены на:
QMAKE_INCDIR_OPENGL = "/usr/include/GL" QMAKE_LIBDIR_OPENGL = "/usr/lib /" QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_LIBS_OPENGL =-lGL QMAKE_LIBS_OPENGL_ES2 =-lGLESv2
libGL привык точки для драйвера Nvidia, обеспеченного библиотеку в моей системе./usr/lib/libGL.so->/usr/lib/i386-linux-gnu/libGLX_nvidia.so.390.48
Принимая во внимание, что/usr/lib/i386-linux-gnu/libGL.so-> mesa/libGL.so к Mesa3D обеспечил библиотеку.
Также удостоверьтесь, mesa-common-dev, libglu1-mesa-dev, libgl1-mesa-dev и другие пакеты разработки OpenGL установлены.
/root/work/qt5_setup/qt-everywhere-src-5.10.0/configure - префикс =/root/work/qt5_setup/qt_install - открытый исходный код - подтверждать-лицензия - linux-g платформы ++ && делают-j 5