Saya mencoba memulai biner saya, dikompilasi dengan Qt 5.7, di Ubuntu 16.04 LTS tempat Qt 5.5diinstal sebelumnya. Tidak berhasil.
Pada awalnya, saya memeriksa biner itu sendiri dengan lddseperti yang disarankan di sini, dan "memenuhi" semua dependensi "tidak ditemukan". Kemudian This application failed to start because it could not find or load the Qt platform plugin "xcb"kesalahan terkenal ini dilemparkan.
Cara mengatasi ini di Linux
Pertama-tama Anda harus membuat platformsdirektori tempat biner Anda berada, karena itu adalah tempat Qt mencari pustaka XCB. Salin di libqxcb.sosana. Saya bertanya-tanya mengapa penulis jawaban lain tidak menyebutkan ini.
Kemudian Anda mungkin ingin menjalankan biner Anda dengan QT_DEBUG_PLUGINS=1variabel lingkungan disetel untuk memeriksa dependensi mana libqxcb.soyang tidak "terpenuhi". (Anda juga dapat menggunakan lddini seperti yang disarankan dalam jawaban yang diterima).
Output perintah mungkin terlihat seperti ini:
me@xerus:/media/sf_Qt/Package$ LD_LIBRARY_PATH=. QT_DEBUG_PLUGINS=1 ./Binary
QFactoryLoader::QFactoryLoader() checking directory path "/media/sf_Qt/Package/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/media/sf_Qt/Package/platforms/libqxcb.so"
Found metadata in lib /media/sf_Qt/Package/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 329472
}
Got keys from plugin meta data ("xcb")
loaded library "/media/sf_Qt/Package/platforms/libqxcb.so"
QLibraryPrivate::loadPlugin failed on "/media/sf_Qt/Package/platforms/libqxcb.so" : "Cannot load library /media/sf_Qt/Package/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5: version `Qt_5' not found (required by ./libQt5XcbQpa.so.5))"
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: xcb.
Reinstalling the application may fix this problem.
Aborted (core dumped)
Perhatikan libQt5DBus.so.5perpustakaan yang gagal . Salin ke jalur perpustakaan Anda, dalam kasus saya itu adalah direktori yang sama tempat biner saya (karenanya LD_LIBRARY_PATH=.). Ulangi proses ini sampai semua dependensi terpenuhi.
PS terima kasih kepada penulis jawaban ini untuk QT_DEBUG_PLUGINS=1.