Я на Ubuntu. Когда я набираю qtcreator
в терминале, я получаю:
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/bin/plugins/platforms/libqxcb.so"
Found metadata in lib /usr/bin/plugins/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"archreq": 0,
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 331008
}
In /usr/bin/plugins/platforms/libqxcb.so:
Plugin uses incompatible Qt library (5.13.0) [release]
"The plugin '/usr/bin/plugins/platforms/libqxcb.so' uses incompatible Qt library. (5.13.0) [release]"
not a plugin
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted (core dumped)
Я искал ответ, но не смог найти ответ, который бы правильно решал мою проблему.
У меня было это сообщение об ошибке при запуске приложения, созданного с использованием Qt, установленного из исходных кодов (так что это было связано с тем, как я установил Qt).
Быстрый
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms
превратит приведенную выше ошибку в qt.qpa.plugin: Не удалось найти подключаемый модуль платформы Qt "xcb" в "/usr/lib/x86_64-linux-gnu/qt5/plugins/ платформы"
, так что это не полное решение.
В моем случае решением было установить xorg
и xorg-dev
— и другие пакеты в этом отношении. Затем переустановите Qt из исходников.
Это все пакеты, которые я установил (в Ubuntu 20.04):
sudo apt install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev \
libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev \
libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev \
libxcb-xinerama0-dev libxkbcommon-dev libxkbcommon-x11-dev libclang-dev \
freeglut3-dev mesa-utils libdrm-dev libgles2-mesa-dev \
binutils g++ cmake g++ mesa-common-dev build-essential libglew-dev libglm-dev \
make g++ pkg-config libgl1-mesa-dev libxcb1-dev libfontconfig1-dev libxkbcommon-x11-dev python libgtk-3-dev \
build-essential default-jre openjdk-8-jdk-headless android-sdk android-sdk-platform-23 libc6-i386 \
libdrm-dev libgles2-mesa-dev libzc-dev libxcb-sync-dev libsmartcols-dev libicecc-dev libpthread-workqueue-dev \
libgstreamer1.0-dev libgcrypt20-dev libqt5gui5-gles qca-qt5-2-utils xorg xorg-dev
Имейте в виду, что default-jre openjdk-8-jdk-headless android-sdk android-sdk-platform-23
и, возможно, libc6-i386
тоже требуются, только если вам нужно создавать проекты для Android.
Вот как я установил Qt из исходников:
export QT_VERSION=5.15.1
export QT5BINDIR=/usr/local/Qt-$QT_VERSION/bin
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/qt5/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms
export QT_QPA_FONTDIR=/usr/lib/x86_64-linux-gnu/qt5/lib/fonts
cd ~/Downloads/qt/qt-everywhere-src-$QT_VERSION/
sed -i 's/python /python3 /' qtdeclarative/qtdeclarative.pro \
qtdeclarative/src/3rdparty/masm/masm.pri
./configure -opensource -confirm-license \
-sysconfdir /etc/xdg \
-dbus-linked \
-system-harfbuzz \
-nomake examples \
-no-rpath \
-skip qtwebengine
make -j4
sudo make -j4 install
echo "Adding environment variables"
PATH=/usr/local/Qt-$QT_VERSION/bin:$PATH
export PATH
ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/*.so
Основным источником документации является Beyond Linux® From Scratch (System V Edition) — Qt-5.15.1. .