@PythonBeginner20

Как исправить ошибку компиляции make: *** [module-qtmultimedia-install_subtargets] Error 2 для QT5.12 под raspberry?

Build QT краткий
X11 specific:
GL .................................... no
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... no
OpenGL ES 2.0 ........................ no
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 .........X11 specific:
XLib ................................. no
XCB Xlib ............................. no
EGL on X11 ........................... no

Ошибка на этапе сборки, именно ее по-сути не знаю как исправить

ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.

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.
Выдает ошибку на этапе make install

qpaintervideosurface.cpp: In function ‘void makeCurrent(QGLContext*)’:
qpaintervideosurface.cpp:67:12: error: invalid use of incomplete type ‘class QGLContext’
context->makeCurrent();
^~
In file included from qpaintervideosurface.cpp:40:0:
qpaintervideosurface_p.h:64:7: note: forward declaration of ‘class QGLContext’
class QGLContext;
^~~~~~~~~~
qpaintervideosurface.cpp:69:26: error: invalid use of incomplete type ‘class QGLContext’
auto handle = context->contextHandle();
^~
In file included from qpaintervideosurface.cpp:40:0:
qpaintervideosurface_p.h:64:7: note: forward declaration of ‘class QGLContext’
class QGLContext;
^~~~~~~~~~
qpaintervideosurface.cpp:70:19: error: ‘QOpenGLContext’ has not been declared
if (handle && QOpenGLContext::currentContext() != handle)
^~~~~~~~~~~~~~
qpaintervideosurface.cpp: At global scope:
qpaintervideosurface.cpp:65:13: warning: ‘void makeCurrent(QGLContext*)’ defined but not used [-Wunused-function]
static void makeCurrent(QGLContext *context)
^~~~~~~~~~~
Makefile:2772: recipe for target '.obj/qpaintervideosurface.o' failed
make[3]: *** [.obj/qpaintervideosurface.o] Error 1
make[3]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia/src/multimediawidgets»
Makefile:85: recipe for target 'sub-multimediawidgets-install_subtargets' failed
make[2]: *** [sub-multimediawidgets-install_subtargets] Error 2
make[2]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia/src»
Makefile:60: recipe for target 'sub-src-install_subtargets' failed
make[1]: *** [sub-src-install_subtargets] Error 2
make[1]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia»
Makefile:795: recipe for target 'module-qtmultimedia-install_subtargets' failed
make: *** [module-qtmultimedia-install_subtargets] Error 2

Устанавливал следующие библиотеки, не помогло

sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev
sudo apt install libqt5gui5
sudo apt install gcc-arm-linux-gnueabihf
sudo apt install g++
sudo apt install libclang-6.0-dev llvm-6.0
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3 freeglut3-dev mesa-common-dev
sudo apt-get install libglut3-dev
sudo apt-get install libglapi-mesa && sudo apt-get install libosmesa6
apt-get install mesa-utils
Стартовые конфигурации

./configure -device linux-rasp-pi3-vc4-g++ -static -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot ../../mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -release -skip qtwebengine -nomake examples -make libs -prefix /usr/local/qt5rpi -v -no-use-gold-linker -nomake tests -no-compile-examples -no-pch -skip wayland
Полная ошибка после make -j4 module-qtmultimedia

arm-linux-gnueabihf-g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/media/aleks/OUT_FILES/opt/qt5/mnt/rasp-pi-rootfs -O2 -fPIC -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -ffunction-sections -fdata-sections -D_REENTRANT -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_MULTIMEDIAWIDGETS_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../include -I../../include/QtMultimediaWidgets -I../../include/QtMultimediaWidgets/5.12.3 -I../../include/QtMultimediaWidgets/5.12.3/QtMultimediaWidgets -I../../include/QtMultimedia/5.12.3 -I../../include/QtMultimedia/5.12.3/QtMultimedia -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtWidgets/5.12.3 -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtWidgets/5.12.3/QtWidgets -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtGui/5.12.3 -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtGui/5.12.3/QtGui -I../../include/QtMultimedia -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtWidgets -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtGui -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtCore/5.12.3 -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtCore/5.12.3/QtCore -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtNetwork -I/media/aleks/OUT_FILES/opt/qt5/qtbase/include/QtCore -I.moc -I/media/aleks/OUT_FILES/opt/qt5/qtbase/mkspecs/devices/linux-rasp-pi3-vc4-g++ -o .obj/qgraphicsvideoitem.o qgraphicsvideoitem.cpp
qpaintervideosurface.cpp: In function ‘void makeCurrent(QGLContext*)’:
qpaintervideosurface.cpp:67:12: error: invalid use of incomplete type ‘class QGLContext’
context->makeCurrent();
^~
In file included from qpaintervideosurface.cpp:40:0:
qpaintervideosurface_p.h:64:7: note: forward declaration of ‘class QGLContext’
class QGLContext;
^~~~~~~~~~
qpaintervideosurface.cpp:69:26: error: invalid use of incomplete type ‘class QGLContext’
auto handle = context->contextHandle();
^~
In file included from qpaintervideosurface.cpp:40:0:
qpaintervideosurface_p.h:64:7: note: forward declaration of ‘class QGLContext’
class QGLContext;
^~~~~~~~~~
qpaintervideosurface.cpp:70:19: error: ‘QOpenGLContext’ has not been declared
if (handle && QOpenGLContext::currentContext() != handle)
^~~~~~~~~~~~~~
qpaintervideosurface.cpp: At global scope:
qpaintervideosurface.cpp:65:13: warning: ‘void makeCurrent(QGLContext*)’ defined but not used [-Wunused-function]
static void makeCurrent(QGLContext *context)
^~~~~~~~~~~
Makefile:2772: recipe for target '.obj/qpaintervideosurface.o' failed
make[3]: *** [.obj/qpaintervideosurface.o] Error 1
make[3]: *** Ожидание завершения заданий…
make[3]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia/src/multimediawidgets»
Makefile:73: recipe for target 'sub-multimediawidgets-make_first' failed
make[2]: *** [sub-multimediawidgets-make_first] Error 2
make[2]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia/src»
Makefile:48: recipe for target 'sub-src-make_first' failed
make[1]: *** [sub-src-make_first] Error 2
make[1]: выход из каталога «/media/aleks/OUT_FILES/opt/qt5/qtmultimedia»
Makefile:780: recipe for target 'module-qtmultimedia' failed
make: *** [module-qtmultimedia] Error 2



Не знаю уже как заставить qt окончательно собраться. Сталкиваюсь с данной ошибкой, подозреваю, что ошибка с OpenGL библиотеками. Как исправить?
  • Вопрос задан
  • 1608 просмотров
Решения вопроса 1
@PythonBeginner20 Автор вопроса
В общем я нашел нормальную инструкцию после которой все скомпилировалось нормально. pavelk.ru/krosskompilyaciya-qt-dlya-raspberry-pi/c...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы