#qt #raspberry-pi #cross-compiling
#qt #raspberry-pi #перекрестная компиляция
Вопрос:
Я скомпилировал Qt5.15.0 и настроил кросс-компилятор на своем хост-компьютере (Ubuntu 20.04), и мне удалось скомпилировать простое приложение Hello World для моего Raspberry Pi 4, однако, когда я его развертываю и запускаю (пробовал как в Qt Creator, так и в терминале) Я получаю Could not queue DRM page flip on screen HDMI1 (Invalid argument)
, что использую последнее изображение Raspbian и пробовал как с облегченными, так и с полными версиями для настольных компьютеров.
Есть несколько решений, предлагающих установить переменные среды;
QT_QPA_EGLFS_ALWAYS_SET_MODE=1
QT_QPA_EGLFS_KMS_ATOMIC=1
Но мне не повезло с их установкой.
Я не знаю, в чем проблема, я очень новичок в Qt.
Ответ №1:
Для тех, у кого такая же проблема, вот как я решил;
Каким-то образом я обнаружил, что Raspberry Pi не устанавливает переменную среды QT_QPA_EGLFS_ALWAYS_SET_MODE
. Вы можете проверить это, набрав
printenv QT_QPA_EGLFS_ALWAYS_SET_MODE
или
echo $QT_QPA_EGLFS_ALWAYS_SET_MODE
в обоих случаях вы должны увидеть 1
результат, если вы его так настроили.
Однако я не получил ответа, когда набрал их.
Затем я пошел и открыл .profile и добавил
QT_QPA_EGLFS_ALWAYS_SET_MODE=1
в конце файла и перезагрузил систему. Наконец, когда я повторил переменную, она вернула 1, и мои программы теперь работают довольно хорошо.
Комментарии:
1. Спасибо! Кстати, мне пришлось ввести
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1