Борьба за сборку Qt из-за отсутствия библиотек OpenGL

Я пытаюсь собрать исполняемую программу на базе Qt для Linux и статически связать Qt в двоичном виде. Согласно Qt docs , для этого мне понадобится собрать Qt из исходного кода, начиная с команд:

cd /path/to/Qt
./configure -static -prefix /path/to/Qt

, когда я пытаюсь это сделать, я получаю длинный выходные данные заканчиваются на:

ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

Check config.log for details.

Это не первый раз, когда у меня возникают проблемы с OpenGL и Qt ... когда я строил свою программу с динамическим линкованием (используя двоичные библиотеки Qt), я получал похожее проблема, которую я решил, сославшись на libGL.so из /usr/lib.

В выводе из configure сказано, что нужно пойти и найти «mkspec» для моей платформы, поэтому я посмотрел на Qt/5.13.1/Src/qtbase/mkspecs/linux-g++-64 (я явно сказал ему использовать эту платформу с командой -platform). Я бродил вокруг и пытался установить эти envvars для различных комбинаций путей, которые казались правдоподобными, но безрезультатно.

Также упоминается файл config.log. Когда я просматриваю этот файл, я вижу открытую GL, упомянутую только в этом блоке:

loaded result for library config.qtbase_gui.libraries.opengl
Trying source 0 (type pkgConfig) of library opengl ...
+ /usr/bin/pkg-config --exists --silence-errors gl
pkg-config did not find package.
  => source produced no result.
Trying source 1 (type makeSpec) of library opengl ...
Include path /usr/include/libdrm is invalid.
header entry 'config.qtbase_gui.libraries.opengl.headers.0' passed condition.
GL/gl.h not found in [/usr/include/libdrm] and global paths.
  => source produced no result.
test config.qtbase_gui.libraries.opengl FAILED
loaded result for library config.qtbase_gui.libraries.opengl_es2
Trying source 0 (type pkgConfig) of library opengl_es2 ...
+ /usr/bin/pkg-config --exists --silence-errors glesv2
pkg-config did not find package.
  => source produced no result.
Trying source 1 (type makeSpec) of library opengl_es2 ...
None of [libGLESv2.so libGLESv2.a] found in [] and global paths.
  => source produced no result.
test config.qtbase_gui.libraries.opengl_es2 FAILED

На самом деле pkg-config --print-errors --exists gl не может ничего найти. Не знаю, откуда у него этот /usr/include/libdrm путь ...

1
задан 22 September 2019 в 18:27

0 ответов

Другие вопросы по тегам:

Похожие вопросы: