(Qt 5.4.1) Это приложение не удалось запустить, поскольку оно не могло найти или загрузить плагин платформы Qt «xcb»,

c++
Вопрос:Я переустановил мои ubuntu 14.04 и Qt 5.4.1 и Qtcreator. Qt 5.4.1 был построен из источника с параметрами конфигурации "-opensource -nomake-test -nomake-example". Когда я открываю старый проект в QtCreator и строю его все ОК. Но когда я запускаю этот проект, он показывает: Это приложение не удалось запустить, поскольку оно не могло найти или загрузить плагин

Вопрос:

Я переустановил мои ubuntu 14.04 и Qt 5.4.1 и Qtcreator.

Qt 5.4.1 был построен из источника с параметрами конфигурации “-opensource -nomake-test -nomake-example”.

Когда я открываю старый проект в QtCreator и строю его все ОК.

Но когда я запускаю этот проект, он показывает:

Это приложение не удалось запустить, поскольку оно не могло найти или загрузить плагин платформы Qt “xcb”.

Доступные плагины платформы: linuxfb, минимальный, закадровый, xcb.

Повторная установка приложения может решить эту проблему. Отменено (ядро сбрасывается)

Итак, я искал эту проблему и попробовал все.
Я установил все пакеты (серия libxcb), но ничего не может помочь!

Кто-нибудь мне поможет…

Я пробовал ваши методы.

Когда я запускаю команду ldd в каталоге platform, она показывает:
ldd libqxcb.so under platform$

Вы можете видеть, что ничего не пропало. И на самом деле я сделал softlink в каталоге платформы libqxcb.so. Раньше не было libqxcb.so в моем каталоге платформы.

И когда я запускаю команду ldd для своего исполняемого файла. это показывает:
executable shot

И вы можете увидеть ошибку при выполнении этого файла.

Ответ №1

По аналогичной проблеме, в моем случае я решил:

export QT_PLUGIN_PATH=<qt base path>/plugins Ответ №2

Попробуйте перейти в папку platforms для установки Qt, которую ваша программа использует и запускает ldd libqxcb.so в командной строке. Затем проверьте вывод, если есть какие-либо недостающие зависимости. Если libqxcb.so отсутствует одна из его зависимостей, это приводит к выходу, о котором вы упомянули.

Вы также можете использовать команду ldd в своем исполняемом файле, чтобы проверить, нет ли каких-либо зависимостей, которые не могут быть найдены.

Вот пример того, как выглядят недостающие зависимости в выводе ldd:

PS: принятый ответ этого вопроса также может помочь вам (создание файла qt.conf).

Ответ №3

Я просто зациклился на очень похожем issue в течение нескольких часов, и ничто не “не найдено” в результатах ldd по соответствующему исполняемому файлу, или libqxcb.so. наконец, я нашел проблему с самим исполняемым файлом, но не с Qt. Пробовал QT_QPA_PLATFORM=» executable, и он работает:)

Ответ №4

‘Это приложение не удалось запустить, поскольку оно не могло найти или загрузить плагин платформы Qt “xcb”.

См. сопроводительную веб-страницу, прокрутите вниз до заголовка “Плагины Qt”. См. Первый абзац.

libqxcb.so требуется, даже если вы свяжете остальное статически.

http://doc.qt.io/qt-5/linux-deployment.html#application-dependencies

Qt, вероятно, написал свое программное обеспечение для исходного кода, чтобы работать следующим образом:
Вместо того, чтобы позволить libqxcb.so загружаться при запуске автоматически (используя rpath’s), они используют функцию dlopen() для ее загрузки, как часть их набора функций QPA, вскоре после начала main().

Таким образом, это полностью игнорирует нашу попытку включить все “xcb” функции статически.

Если их dlopen() не удается, они просто вытаскивают свое сообщение об ошибке, которое все мы знаем и ненавидим, а затем вызываем сигнал 6, чтобы прервать его (совершенно необязательно) вместо обычного выхода.

Ответ №5

Я получил эту точную ошибку на Linux Xubuntu 18.04

qt.qpa.plugin: Could not load the Qt platform plugin «xcb» in «» even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb. Aborted (core dumped)

Во-первых, определение этой переменной среды перед запуском qtcreator из командной строки приводит к выводу дополнительной отладки:

export QT_DEBUG_PLUGINS=1

И затем в отладке он сказал это при попытке запустить qtcreator из командной строки на xubuntu 18.04:

Cannot load library /home/myuser/Qt/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory)

Обратите внимание, что он не может найти libxkbcommon-x11, поэтому исправление было следующим:

sudo apt-get install libxkbcommon-x11-dev export PATH=$PATH:~/Qt/Tools/QtCreator/bin

Теперь запускается qtcreator.

Ответ №6export QT_PLUGIN_PATH=<your qt installation path>/plugins/platforms

Подобно тому, что говорит mbjoe, это действительно работает!

Ответ №7

для тех, кто еще не нашел решения и отчаянно ищет ответ, это копия того, что @wardw прокомментировал в настоящее время с самым высоким рейтингом ответа, что помогло мне решить основную проблему.

export QT_DEBUG_PLUGINS=1

поместите это либо в конфигурацию запуска, либо в консоль, прежде чем запускать проект, и он напечатает больше информации о том, что не так.

Ответ №8

Это может быть очевидно, но я получил эту ошибку при запуске графического интерфейса из (без отображения) сеанса SSH [Почему? Я разрабатывал встроенное приложение на гораздо большем экране, прямо рядом с крошечным сенсорным экраном, для которого он предназначен].

Во всяком случае, в bash следующая команда нацеливает приложение на собственный экран:

export DISPLAY=’:0.0′

Надеюсь, это кому-нибудь поможет.

Ответ №9

Выполните команду:

sudo./app-name -platform linuxfb

Оцените статью
Добавить комментарий