Я занимаюсь разработкой некоторых (простых) приложений с графическим интерфейсом для RPi2 в Qt5. Настройка: Разработка кода выполняется на ноутбуке с Windows с использованием Netbeans + Qt Designer и удаленно создается на RPi под управлением Raspbian Jessie с помощью инструментов, которые поставляются с ним (g ++ 4.9.2, Qt 5.3.2, пакет qt5-default), как описано здесь . Эта настройка в целом работает просто отлично.
Тем не менее, даже минимальный пример не работает, хотя собирает нормально. Он не запускается и libEGL warning: DRI2: failed to authenticate
появляется, если приложение было запущено из терминала.
Qt не может работать на RPi? В противном случае, пожалуйста, помогите мне решить эту проблему.
РЕДАКТИРОВАТЬ1: Вот что я имею после выполнения find
команды, как предложил Алексей Веснин:
/usr/lib/arm-linux-gnueabihf/libEGL.so
/usr/lib/arm-linux-gnueabihf/libEGL.so.1
/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
/usr/lib/chromium-browser/libs/libEGL.so
/usr/lib/chromium-browser/libs/libEGL.so.TOC
/opt/vc/lib/libEGL.so
/opt/vc/lib/libEGL_static.a
/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
/usr/lib/arm-linux-gnueabihf/libGLESv2.so
/usr/lib/chromium-browser/libs/libGLESv2.so
/usr/lib/chromium-browser/libs/libGLESv2.so.TOC
/opt/vc/lib/libGLESv2_static.a
/opt/vc/lib/libGLESv2.so
EDIT2: список с дополнительной информацией:
-rw-r--r-- 1 pi pi 171312 Nov 11 14:20 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
-rwxr-xr-x 1 root root 107880 Nov 2 22:27 /usr/lib/chromium-browser/libs/libEGL.so
-rw-r--r-- 1 root root 14189 Nov 2 22:27 /usr/lib/chromium-browser/libs/libEGL.so.TOC
-rw-r--r-- 1 root root 202072 Dec 19 21:01 /opt/vc/lib/libEGL.so
-rw-r--r-- 1 root root 245356 Dec 19 21:19 /opt/vc/lib/libEGL_static.a
-rw-r--r-- 1 pi pi 29996 Jan 12 2016 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
-rwxr-xr-x 1 root root 2632816 Nov 2 22:27 /usr/lib/chromium-browser/libs/libGLESv2.so
-rw-r--r-- 1 root root 29617 Nov 2 22:27 /usr/lib/chromium-browser/libs/libGLESv2.so.TOC
-rw-r--r-- 1 root root 100008 Dec 19 21:19 /opt/vc/lib/libGLESv2_static.a
-rw-r--r-- 1 root root 105768 Nov 25 17:35 /opt/vc/lib/libGLESv2.so
EDIT3:
linux-vdso.so.1 (0x7ecef000)
/usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f53000)
libQt5Widgets.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5 (0x76a25000)
libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x76655000)
libQt5Core.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 (0x761d0000)
libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x761ab000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76183000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x760a6000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x7602b000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75ffe000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75ebd000)
libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x75e63000)
libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75d5f000)
libX11.so.6 => /usr/lib/arm-linux-gnueabihf/libX11.so.6 (0x75c49000)
libGLESv2.so.2 => /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 (0x75c31000)
/lib/ld-linux-armhf.so.3 (0x54b67000)
libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0x75c01000)
libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x75ba5000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75b7d000)
libicui18n.so.52 => /usr/lib/arm-linux-gnueabihf/libicui18n.so.52 (0x759bd000)
libicuuc.so.52 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.52 (0x75874000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75861000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x7584a000)
libEGL.so => /opt/vc/lib/libEGL.so (0x75810000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x757ea000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x757d4000)
libvcos.so => /opt/vc/lib/libvcos.so (0x757ba000)
libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x757aa000)
libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x75736000)
libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0x75717000)
libdrm.so.2 => /usr/lib/arm-linux-gnueabihf/libdrm.so.2 (0x756fa000)
libglapi.so.0 => /usr/lib/arm-linux-gnueabihf/libglapi.so.0 (0x756c1000)
libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x75629000)
libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x755fb000)
libicudata.so.52 => /usr/lib/arm-linux-gnueabihf/libicudata.so.52 (0x73f7e000)
libXau.so.6 => /usr/lib/arm-linux-gnueabihf/libXau.so.6 (0x73f73000)
libXdmcp.so.6 => /usr/lib/arm-linux-gnueabihf/libXdmcp.so.6 (0x73f67000)
источник
Ответы:
Это обычная проблема с Linux и Unix, не связанная с Pi. Вот в чем проблема: ваши библиотеки должны быть символическими. Делай
sudo -s
и становись рутом для такой операции. И давайте разберемся с этим!Сначала найдите их, вот так:
и сделайте эту ссылку на полный путь к файлам следующим образом:
и сообщите ОС, что вы сделали, и учтите это следующим образом:
/path/to/lib
Часть вы должны заменить полный путь , чтоfind
команды будут показывать вам. И если он запускается от непривилегированного пользователя - убедитесь, что он вvideo
группе - иногда эта старая часть настроек разрешений всплывает. Как проверить:если это ничего не дает - тогда это не тот случай, но если это дает число, то введите ваше имя пользователя в
groups
команде - пример для пользователяpi
:если это не показывает
video
группу - добавьте это как дополнительную группу , а не как основную, как это:это добавит пользователя
pi
в группу,video
не разбивая вещиОБНОВЛЕНИЕ: дополнительная команда проверки, чтобы узнать, какие файлы найдены:
ОБНОВЛЕНИЕ № 2: Попробуйте сделать это от root:
ОБНОВЛЕНИЕ № 3: сборка Qt5 с исправлениями из исходного кода.
apt-get build-dep qt5-default
apt-get install libxcb-xinerama0-dev flex bison gperf libicu-dev libxslt-dev ruby libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
, после этогоapt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev
после этого сделайте это:
после этой ссылки
./configure --help
выводим для вашего дела и продолжимЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ: исходная сборка сделала свое дело, проблема была в устаревшем Qt в пакетах. Строка конфигурации:
Сборка Raspberry Pi заняла около 40 часов и 6 ГБ дискового пространства. Проблема исправлена
источник
В моем случае это решило проблему
источник