Когда вы развертываете свое приложение и запускаете его из системы X11 на самом устройстве, вы обнаруживаете, что оно работает, потому что здесь у него есть доступ к переменной окружения DISPLAY
, которая (кратко говоря) сообщает ему, где отображать себя.Эта переменная среды была дополнительно установлена в дереве процессов в сеансе X.
Когда вы запускаете программу через отладчик, Qt Creator подключается к удаленному устройству (через ваши настройки в Инструменты> Параметры> Устройства ) и запуск программы через ssh.В этом контексте ваша программа больше не знает, где отображать себя, поскольку, очевидно, она не может отображаться в ssh.В указанной вами линии происходит сбой, потому что именно здесь подсистема XCB пытается определить, к какому X-серверу подключиться для этой цели.
Итак, чтобы ответить на ваш вопрос: вам необходимовручную введите переменную окружения DISPLAY
при удаленной отладке.
Простой способ проверить это - перейти в Projects Mode , найти комплект, который вы используете для сборки для удаленного устройства,и выберите настройки Run .При этом вы должны найти раздел Run Environment .Здесь вы можете добавить новую переменную с именем DISPLAY
и установить ее значение в качестве идентификатора дисплея, на котором вы работаете (я предполагаю, что вам понадобится :0.0
, указывающий первый доступный экран на локальном хосте, хотя вы должны прочитатьо переменной DISPLAY, например, здесь или здесь ).
Более долгосрочным, потенциально лучшим решением было бы установить ту же переменную в настройках вашего набора ( Инструменты> Параметры> Построить и запустить> Наборы> Среда ).Это будет применяться к будущим программам, которые вы создадите с помощью этого.