Я написал приложение для Linux, которое использует Qt5.
Но когда я пытаюсь запустить его на Linux без установленного Qt SDK, вывод в консоли:
Failed to load platform plugin "xcb". Available platforms are:
Как я могу это исправить? Может быть, мне нужно скопировать файл плагина? Когда я использую Ubuntu с установленным Qt5, но переименовываю каталог Qt, возникает та же проблема. Итак, он использует какой-то файл из каталога qt ...
Я нашел файл libqxcb.so
в каталоге Qt SDK, но его размещение /usr/lib
не помогает.
plugins/platforms
с/usr/bin
?platforms
Каталог содержит общие библиотеки,/usr/bin
используются для бинарных файлов. Не должно ли содержаниеplatforms
войти в/usr/lib
?/usr/bin/platforms
(я не знаю почему). Так что этот ответ также работал для меня: stackoverflow.com/a/25437758/2249798Всем будущим читателям, которые сталкиваются с этим - прежде чем вы начнете (опасно) возиться с символическими ссылками на общие библиотеки, я настоятельно рекомендую вам запустить
export QT_DEBUG_PLUGINS=1
а затем снова запустите свой сбойный исполняемый файл в Терминале. Прочитайте фактическое сообщение об ошибке, выдаваемое QT, поскольку ни одно из приведенных выше решений не устраняет причину этой ошибки в моем случае.
Мой вывод после включения
QT_DEBUG_PLUGINS
был:так что я затем погуглил
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
ошибку и нашел решение , которое решило проблему.источник
У меня было это сообщение об ошибке при попытке запустить «Stellarium».
С помощью strace я обнаружил, что отсутствующий файл был
libxcb-xinerama.so.0
. Мне пришлось переустановить,libxcb-xinerama0
чтобы заставить его работать:источник
Попробуйте установить
libqt5x11extras5
пакет с помощью команды:sudo apt-get install libqt5x11extras5
Название может быть другим. Вы можете понять это с помощью поиска:
sudo apt-cache search qt5 | grep 'X11 extras'
и вы получите название пакета в результате:
источник
Запустите ldd в исполняемом файле приложения, чтобы увидеть, как оно разрешает зависимости библиотеки.
Также это необходимо прочитать, чтобы понять, какие основные библиотеки необходимы в простом случае графического приложения:
http://qt-project.org/doc/qt-5/linux-deployment.html
источник
В моем Ubuntu типа:
Может работать
источник
Для тех, кто все еще застрял после того, как попробовал любой другой вариант в Интернете, вы можете найти точный путь, по которому этот пресловутый
libqxcb.so
поиск ищется, для открытия / загрузкиQt
приложением (VirtualBox-5.2.8
этоQt
приложение в моем случае), используя Трассирование инструмент. В моем случае, так как я строилVirtualBox-5.2.8
из его источника, он искалlibqxcb.so
в расположении ниже:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
а не вdefault
путях библиотеки, путиQt
установки и т. Д. Итак, ни одна изldd
проверок и другие решения не работали. Кроме того, установкаQT_DEBUG_PLUGINS=1
не принесла никаких дополнительных журналов.Запуск strace в бинарном файле VirtualBox, который я создал с использованием Clang / LLVM в Ubuntu 17.10 x86_64:
Это был мой
hitting-the-nail-on-its-head
момент, и я создалsymlink
из установленногоQt5.10.1
«splatforms
директории указанной ниже:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
на искомый путь , который"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Таким образом,VirtualBox-5.2.8
собран из исходного кода на Linux (Ubuntu 17.10 x86_64
) с использованиемClang/LLVM
, наконец, успешно запущен !На самом деле, еще одна интересная вещь здесь является то, что я построил ,
VirtualBox-5.2.8
полностью используяClang/Clang++/LLVM
наUbuntu 17.10 x86_64
после значительного усилия - дляFreeBSD
, уже есть порт для строительства сVirtualBox
использованием ,clang
но и для Linux, это сильно зависит от ,GCC
как я увидел , и , следовательно , потребовалось много усилий , чтобы получить к этому моменту, чтобы иметь возможность успешно строитьVirtualBox-5.2.8
из его источника с помощьюClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) и успешно запускать его после решения других проблем наряду с этим пресловутымlibqxcb.so
.Приветствия.
источник
Вот как можно решить несколько проблем, когда я запускаю эмулятор на Ubuntu 18.04.
Добавьте следующие строки в конец файла. Я устанавливаю свой Android SDK в
/opt/Android/Sdk
источник
Запуск этого решил это для меня:
источник
Кажется, за этим могут не хватать разные вещи. В моем случае (Debian 9.7) QT_DEBUG_PLUGINS = 1 помог отследить отсутствующие библиотеки, и
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
решил проблему.
источник
Создайте файл qt.conf в своем проекте и добавьте:
https://doc.qt.io/qt-5/qt-conf.html
источник
Скопируйте
plugins/platforms/libqxcb.so
из вашейqt
установкиplatforms/libqxcb.so
в каталог вашего приложения.источник